如何将JPEG图像转换为具有透明背景的PNG图像?

Jef*_*man 4 c# png jpeg image

我有一个JPEG格式的图像,白色背景和黑色圆圈.

如何将此图像转换为PNG格式,白色背景将是透明的,黑色仍然存在?

我也是程序员,如果C#代码中有一些想法,我会非常高兴.我也正在寻找转换器,工具,程序.

谢谢.

杰夫

iro*_*nic 10

这是工作,但缓慢的解决方案.您可以使用Bitmap.LockBits()加快速度.

using (Image img = Image.FromFile(filename))
using (Bitmap bmp = new Bitmap(img))
{
    for (int x = 0; x < img.Width; x++)
    {
        for (int y = 0; y < img.Height; y++)
        {
            Color c = bmp.GetPixel(x, y);
            if (c.R == 255 && c.G == 255 && c.B == 255)
                bmp.SetPixel(x, y, Color.FromArgb(0));
        }
    }
    bmp.Save("out.png", ImageFormat.Png);
}
Run Code Online (Sandbox Code Playgroud)