返回首页

您好
我想图像处理在WPF
我发现没有办法适用于除getpixel功能:

public Color GetPixel(BitmapSource bitmap, int x, int y)

{

    CroppedBitmap cb = new CroppedBitmap(bitmap, new Int32Rect(x, y, 1, 1));

    byte[] pixel = new byte[bitmap.Format.BitsPerPixel / 8];

    cb.CopyPixels(pixel, bitmap.Format.BitsPerPixel / 8, 0);

    return Color.FromRgb(pixel[2], pixel[1], pixel[0]);

}
但由于此功能是一个循环内运行,它是很慢的。
有任何方式使其快速?

回答

评论会员:游客 时间:2012/02/06
西蒙邦Terkildsen:我建议你采取另一种方法,而不是有一个循环,调用你的函数,你每每次复制你的形象的一部分,因为这有一个庞大的开销我建议的做法是,你整个数据复制到一个数组,而不是一个一个像素开始。然后循环到你的阵列指数得到的颜色。会因为你有需要的第三方库的由hzawary解决方案,我建议你不顾,唯一的原因,你永远使用不安全的代码。也可以与该库,然后将设计不当,所以你不应该选择它}{S0的启动:戴夫Kreskowiak
搜索"傻瓜图像处理"的文章。你会发现一系列的文章,演示如何访问位图数据的情况下直接使用getPixel,hzawary
评论会员:游客 时间:2012/02/06
|我也很研究这个问题,找到这个链接:imgsrc=http://www.orcode.com/img/ico/smiley_smile.gif
GetPixel是周围的GDI绘图组件的包装
调用GDI的方法]可能有助于提高速度。|