直接克隆图片RectangleF block = new Rectangle(4,6,8,10);//从位置(4,6)开始截取大小为(8,10)的图片Bitmap s = new Bitmap();
s = image.Clone(block,PixelFormat.DontCare);
s = image.Clone(block,PixelFormat.DontCare);
但是因为要访问每个像素点后进行处理,所以不能拷贝区域。我的源代码里只是一个测试,就是想看看能不能操作JPG图像的每个像素。
C#的SetPixel()是极慢!
像素级处理是很费时间的,你看看是否可以在你的源操作上看看瓶颈,比如你每一个类型转换其实就是要转换 2048*1536 次..减少一次就可以得到不错的效果.如果有装箱操作就更@#$@%@了..还有如果刚好你的循环次数有一个是2048(1024的N倍...巧合..),那么把这个数字放在内层和外层也是效率上有区别的(虽然不大...起码在老式C++中有区别,我不知道C#编译器是否会自动优化这个地方)
其实就是调用非托管代码做的