gpt4 book ai didi

c# - 在 C# 中导出透明图像?

转载 作者:太空宇宙 更新时间:2023-11-03 20:38:42 25 4
gpt4 key购买 nike

我在 C# 中编辑了一个位图,如果条件为真,我将每个像素更改为某种颜色,否则我将颜色设置为 Color.Transparent(操作是使用 getPixel/setPixel 完成的) .我已将图像导出为 .png 格式,但图像不透明。我为什么要这样做或如何做有什么想法吗?

问候,亚历山德鲁·巴德斯库

代码如下:-- 这里我加载图像并转换为 PixelFormat.Format24bppRgb if png

m_Bitmap = (Bitmap)Bitmap.FromFile(openFileDialog.FileName, false);

           if(openFileDialog.FilterIndex==3) //3 is png
m_Bitmap=ConvertTo24(m_Bitmap);

-- 这是为了改变矩阵中某个位置之后的像素

for (int i = startX; i < endX; i++)

                for (int j = startY; j < endY; j++)
{
if (indexMatrix[i][j] == matrixFillNumber)
m_Bitmap.SetPixel(j, i, selectedColor);
else
m_Bitmap.SetPixel(j, i, Color.Transparent);

}

最佳答案

因为像素格式。这是一个示例代码:

        Bitmap inp = new Bitmap("path of the image to edit");
Bitmap outImg = new Bitmap(inp.Width, inp.Height, PixelFormat.Format32bppArgb);
outImg.SetResolution(inp.HorizontalResolution, inp.VerticalResolution);
Graphics g = Graphics.FromImage(outImg);
g.DrawImage(inp, Point.Empty);
g.Dispose();
inp.Dispose();

////
// Check your condition and set pixel here (outImg.GetPixel, outImg.SetPixel)
////

outImg.Save("out file path", ImageFormat.Png);
outImg.Dispose();

这是需要对当前代码进行最少更改的代码。但我建议您查看 LockBits 方法以获得更好的性能: http://msdn.microsoft.com/en-us/library/5ey6h79d.aspx

关于c# - 在 C# 中导出透明图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4013424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com