我正在使用Java中的Images,我设计了超过100种图像(.png)格式,它们都是Trasparent和Black Color Drawing.
问题是,现在我被要求改变绘图的颜色(黑色 - ).
我搜索了许多在谷歌剪辑的代码,它改变了图像的位图(像素),但我不是在猜测我必须做什么来匹配精确的像素,并在图像处于透明模式时特别替换.下面是.Net中的代码(C#)
Bitmap newBitmap = new Bitmap(scrBitmap.Width, scrBitmap.Height);
for (int i = 0; i < scrBitmap.Width; i++)
{
for (int j = 0; j < scrBitmap.Height; j++)
{
originalColor = scrBitmap.GetPixel(i, j);
if(originalColor = Color.Black)
newBitmap.SetPixel(i, j, Color.Red);
}
}
return newBitmap;
Run Code Online (Sandbox Code Playgroud)
但它根本没有匹配,我调试了它,在整个文件中,没有Color(originalColor)变量的Red,Green,Blue参数值.
有人可以帮忙吗?
我GetPixel()
在.NET应用程序中使用gdi32.dll来在屏幕上的任何位置采样像素的颜色.它工作正常,但它对我来说是一个主要的性能瓶颈.
有更快的方法吗?