无需外部 dll 即可制作图像负片的有效方法
这就是在 C# Windows 窗体中从图像制作底片而无需任何 dll 并以有效、快速的方式制作底片的解决方案吗?
That is the solution to make a negative from a image in C# Windows Forms without any dlls and in a effective, fast way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
执行此操作的最佳方法是直接使用位图数据访问像素。
只是添加一些计时细节:
在 8 兆像素图像上执行 Negate(在 2.4 Ghz Core 2 Duo 上):
因此,如果您不能有不安全的代码,那么 Color Matrix 比 SetPixel 好得多。
如果您有兴趣,这里是颜色矩阵的代码:
The best way to do this is directly accessing the pixels with bitmap data.
Just to add some timing details:
Performing Negate on an 8 Megapixel Image (on a 2.4 Ghz Core 2 Duo):
So, if you can't have unsafe code, then Color Matrix is much better than SetPixel.
If you are interested, here is the code for Color Matrix:
逐一遍历所有像素(Bitmap.GetPixel() 或其他)并从 0xff 中减去 RGB 值以创建负颜色像素。 将此像素保存到新图像或使用 (Bitmap.SetPixel()) 保存到同一图像的相同位置。
Go through all the pixels one by one (Bitmap.GetPixel() or something) and subtract the RGB values from 0xff to create a pixel of negative color. Save this pixel to a new image or onto the same image using (Bitmap.SetPixel()) at the same position.