场景:有时,我们需要给透明Png黑白图片改变成指定颜色(上色)。
前提:我们已经做好了带透明通道的PNG图片。
益处:使用此方法,只需要制作一张透明的黑色PNG图片即可,我们需要不同颜色的同样式图片时,直接使用本程序LOAD一个。
话不多说,直接上代码:
public static Bitmap ChangePngColor(string pngFileName, Color destColor)
{
Bitmap curBitmap = (Bitmap)Image.FromFile(pngFileName);
if (curBitmap != null)
{
Rectangle rect = new Rectangle(0, 0, curBitmap.Width, curBitmap.Height);
BitmapData bmpData = curBitmap.LockBits(rect, ImageLockMode.ReadWrite, curBitmap.PixelFormat);
int c = curBitmap.PixelFormat == PixelFormat.Format32bppArgb ? 4 : 3;
IntPtr ptr = bmpData.Scan0;
int numBytes = bmpData.Stride * curBitmap.Height;
byte[] rgbVal