压缩图像的速度比 Bitmap.save C# 快
本文关键字:save Bitmap 图像 速度 压缩 | 更新日期: 2023-09-27 17:56:57
我有一个项目,使用拆分位图10000x10000像素到100x100像素,然后将其压缩为png。我的代码:
Bitmap bitmap = new Bitmap("file name");
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
Bitmap cropped = bitmap.Clone(new Rectangle(i*100, j*100, 100, 100), bitmap.PixelFormat);
MemoryStream ms = new MemoryStream();
crop.Save(ms, ImageFormat.Png);
Bitmap NewSmallBitmap = new Bitmap(ms);
//work something with new bitmap
}
}
但它运行得非常慢 - 一个循环大约 1 毫秒,所有循环大约 10 秒。有没有人有赌注性能的解决方案?谢谢
您应该考虑使用任务;
TaskFactory.StartNew 允许您启动任务,并且可以多次调用它。每次调用返回一个任务对象;将其保存在列表或数组中。
启动所有作业后,调用 Task.WaitAll(Task[]) 以等待所有作业完成。