我正在制作一个程序来自动对图像执行某些编辑。
其中一项功能是将“白色”像素转换为“白色”和透明的。最初,一切都很好。
我设法将 24bppRGB 图像转换为 32bppRGB 图像,所需像素全部透明。
图像加载到图片框中,保存后即可打开。
当我尝试重新编辑文件时出现问题。当我再次尝试提取原始像素数据时,我什么也没得到。据我所知,整个像素数据数组都是 0。
为什么会这样?
^这是我的主要问题。除了这个问题,我还注意到该程序的一些怪癖,这些只是出于好奇:
有什么区别:
for(int i = 0; i < (x + 1); i += y)
和
for(int i = 0; i <= (x); i += y)
并且:
byte = 4;
for(int i = 0; i < x - byte; i += byte)
和
for(int i = 0; i < x - byte; i += 4)
当我解锁位图时,第二个导致了 AccessViolationException。
如果可能的话,尽量让解释简单。我在这方面是一个相当新的人。谢谢你的时间。