有没有更好的办法,这个感觉时间太久了
wpf中的图片有没有好用的,这里用的是winform中的bitmap
得到了像素颜色数组存到bitmap中太慢了,有没有什么好方式
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- gis_zx92 2018-02-10 09:41关注
C#可以用lockbits和unlockbits方法把bmp图像写进内存中,然后操作。这样效率很高。比如下面是把bmp图像转为灰度图像的代码。
Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
BitmapData bData = bmp.LockBits(rect, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
byte[] bytes=new byte[bData.Stride*bData.Height];
System.Runtime.InteropServices.Marshal.Copy(bData.Scan0, bytes, 0, bytes.Length);for (int j = 0; j < bData.Height; j++) for (int i = 0; i < bData.Width; i++) { int pixel = j * bData.Stride + 3 * i; byte avg=(byte)((bytes[pixel]+bytes[pixel+1]+bytes[pixel+2])/3); bytes[pixel] = bytes[pixel + 1] = bytes[pixel + 2] = avg; } System.Runtime.InteropServices.Marshal.Copy(bytes, 0, bData.Scan0, bytes.Length); bmp.UnlockBits(bData);
解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
- ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算