当您创建新的位图并使用SetPixel()函数并设置参数黑色时,结果与您未为指定像素设置任何颜色并以Jpeg格式保存位图时的结果相同。 保存我的图像后我读了Jpeg图像文件,我怎么知道像素有真正的黑色还是没有设置?
答案 0 :(得分:1)
“未设置”和“黑色”在JPEG中相同。默认情况下,它是黑色的。在具有透明度的格式中,如32位PNG,您将能够分辨出差异。
答案 1 :(得分:1)
JPEG文件不支持透明度,因此每个像素都有某种颜色 - 无论您是否明确设置它。这就是为什么你没有设置某个像素的颜色并不重要 - 当你将位图保存为JPEG时,所有像素都会以某种颜色保存。您未设置的那些将使用默认值黑色保存。
当您使用支持透明度的图像格式(如PNG)时,可以使用另一种“颜色”(默认值):透明色。这是默认情况下未明确设置的像素使用的颜色。
请注意,透明颜色实际上不是单独的颜色:每个像素都有一个透明字节(假设像素格式为ARGB),默认情况下,每个像素的透明度字节设置为255(完全透明)。因此,可以独立控制每个像素的透明度。
答案 2 :(得分:1)
你应该使用PNG。它是压缩的图像格式。它与JPEG相比的主要优点是它无损并支持透明度。在只有少量颜色的简单图像上,我使用PNG体验了更小的图像尺寸。
如果你出于某种原因只需要使用JPEG,我会用一些特定的颜色来表达“没有像素”。如果要使用黑色(0,0,0)作为此颜色键,则必须使用不同的颜色作为真正的黑色像素。例如,这可以是0x000001(0,0,1)。眼睛无法与真正的黑色区别开来,但计算机程序可以。因此,如果图像中有0x000000(0,0,0)个彩色像素,则将其替换为0x000001(0,0,1)。但请注意,JPEG的有损压缩在使用此技术时可能会导致问题。使用更高的质量应该可以解决这个问题。