public async Task Reduce(FileInfo input, FileInfo output)
{
if (input == null)
{
throw new ArgumentException("Missing parameter input", "input");
}
if (output == null)
{
throw new ArgumentException("Missing parameter outputDirectory", "outputDirectory");
}
var fileName = input.Name;
var endpoint = new Uri("https://api.accusoft.com/v1/imageReducers/" + fileName);
using (var client = new WebClient())
{
client.Headers.Add("acs-api-key", _apiKey);
client.Headers.Add("Content-Type", input.Extension == "png" ? "image/png" : "image/jpg");
using (var reader = new BinaryReader(input.OpenRead()))
{
var data = reader.ReadBytes((int)reader.BaseStream.Length);
var result = await client.UploadDataTaskAsync(endpoint, "POST", data);
using (var writeStream = output.Create())
{
await writeStream.WriteAsync(result, 0, result.Length);
}
}
}
}