我正在開發一項服務,用戶可以在其中上載圖像並將其保存在庫中。我想保留原始文件(這樣人們可以上傳高分辨率圖像),但也可以將圖像的副本作爲縮略圖使用。C#:調整圖像大小時保留每個平面的位數
我的問題是縮略圖「權重」比原始文件更多,按比例。當我檢查每個文件(在XnView中)的基本屬性時,我可以看到原始文件例如以每個平面32位保存,而源文件例如每個平面只有24位。
在仍使用壓縮的情況下複製原始文件的正確方法是什麼?這是代碼摘錄:
private void ResizeImage(string originalFile, string NewFile, int NewWidth, int MaxHeight, bool OnlyResizeIfWider, string directory)
{
System.Drawing.Image FullsizeImage = System.Drawing.Image.FromFile(originalFile);
// Prevent using images internal thumbnail
FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
FullsizeImage.RotateFlip(System.Drawing.RotateFlipType.Rotate180FlipNone);
if (OnlyResizeIfWider)
{
if (FullsizeImage.Width <= NewWidth)
{
NewWidth = FullsizeImage.Width;
}
}
int NewHeight = FullsizeImage.Height * NewWidth/FullsizeImage.Width;
if (NewHeight > MaxHeight)
{
// Resize with height instead
NewWidth = FullsizeImage.Width * MaxHeight/FullsizeImage.Height;
NewHeight = MaxHeight;
}
System.Drawing.Image NewImage = FullsizeImage.GetThumbnailImage(NewWidth, NewHeight, null, IntPtr.Zero);
// Clear handle to original file so that we can overwrite it if necessary
FullsizeImage.Dispose();
// Save resized picture
NewImage.Save(directory + Path.DirectorySeparatorChar + NewFile);
}
您的意思是每像素*位? – 2010-09-27 18:38:52