我有一個Windows應用程序項目,處理圖像編輯(裁剪&調整大小)。不幸的是,這些圖像處理消耗了大量的內存和CPU資源(很容易達到600MB或50%的CPU),它只是裁剪和調整一個重量爲2.5MB(2300×5400像素)的gif圖像。不僅如此,由於大量的資源消耗,該程序被卡住而調整...C#:如何減少使用位圖時的內存和CPU消耗?
public static Image Resize(Image imgToResize, Size size)
{
Bitmap b = new Bitmap(size.Width, size.Height);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.Default;
g.SmoothingMode = SmoothingMode.HighSpeed;
g.PixelOffsetMode = PixelOffsetMode.Default;
g.DrawImage(imgToResize, 0, 0, size.Width, size.Height);
g.Dispose();
return (Image)b;
}
public static Image Crop(Image img, Point p1, Point p2)
{
Rectangle cropArea = new Rectangle(p1.X, p1.Y, p2.X - p1.X, p2.Y - p1.Y);
return (img as Bitmap).Clone(cropArea, img.PixelFormat);
}
我應該用什麼樣的方法來避免這種情況? 我已經嘗試將它壓縮到內存流中的幾種格式,但它並沒有幫助(甚至使情況變得更糟)
注意:我使用標準的.NET繪圖庫:System.Drawing,System.Drawing.Imaging