大家好我是的WebAPI的工作,我需要上傳到destination folder
之前優化從文件夾這裏我不得不Uploaded images into one folder
圖像我需要降低總圖像的image size in KB
我在這裏優化single image in to 3 different sizes' (large, thumbnail,medium)' but image sizes are increased
並保存在一個文件夾 在現在的我需要優化這些圖像可能你需要幫助我 我怎麼能這樣做。其實我是webapi的新手。 任何機構可以有任何想法,請幫助我,但有一點我需要做的this manually
三江源提前如何在webapi中手動優化文件夾中的多個圖像(減小文件大小)?
這是我的控制器
public Task<HttpResponseMessage> Post()
{
if (!Request.Content.IsMimeMultipartContent("form-data"))
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var uploadFolder = HostingEnvironment.MapPath("~/App_Sprites/UploadFolder");
uploadFolder = Path.Combine(uploadFolder, DateTime.Now.ToString("yyyyMMddhhmmssfff"));
Directory.CreateDirectory(uploadFolder);
var streamProvider = new PreserveFilenameMultipartFileStreamProvider(uploadFolder);
return Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(t =>
{
foreach (var uploadedFile in Directory.GetFiles(uploadFolder))
{
var thumbnail = Path.Combine(uploadFolder, "thumb-" + Path.GetFileName(uploadedFile));
var medium = Path.Combine(uploadFolder, "medium-" + Path.GetFileName(uploadedFile));
var large = Path.Combine(uploadFolder, "large-" + Path.GetFileName(uploadedFile));
ImageTools.Resize(uploadedFile, thumbnail, 80, 80);
ImageTools.Resize(uploadedFile, medium, 48, 48);
ImageTools.Resize(uploadedFile, large, 128, 128);
}
return Request.CreateResponse(HttpStatusCode.Accepted);
});
}
}
ABD這是我的類文件
public class ImageTools
{
public static void Resize(string original, string output, int width, int height)
{
using (var image = Image.FromFile(original))
using (var thumbnail = new Bitmap(width, height))
using (var graphics = Graphics.FromImage(thumbnail))
{
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = SmoothingMode.HighQuality;
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
graphics.CompositingQuality = CompositingQuality.HighQuality;
graphics.DrawImage(image, 0, 0, width, height);
ImageCodecInfo[] info = ImageCodecInfo.GetImageEncoders();
EncoderParameters encoderParameters;
encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 100L);
thumbnail.Save(output, info[1], encoderParameters);
}
}
}
類文件
public class PreserveFilenameMultipartFileStreamProvider : MultipartFileStreamProvider
{
public PreserveFilenameMultipartFileStreamProvider(string rootPath)
: base(rootPath)
{
}
public override string GetLocalFileName(HttpContentHeaders headers)
{
return headers.ContentDisposition.FileName.Replace("\"", "");
}
}
這是我的佈局頁
@using (Html.BeginRouteForm("DefaultApi", new { httproute = "", controller = "Upload" }, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="image" multiple="multiple" accept="image/*" />
<button type="submit">Upload</button>
}
我已經創建了一個文件夾現在的圖像保存在文件夾中,但在KB文件大小增加,但我們必須減少plz幫助我
您可以編輯您的文章一點 - 目前還不清楚什麼似乎是問題 - 正在調整圖像大小以增加字節大小?如果是這樣 - 請提供一些示例,例如您使用哪些庫來調整大小,以及如何使用它們。我不相信這與webAPI有什麼關係。 – veljkoz
我已經更新PLZ看我的代碼PLZ幫我做這個工作 –