c# - 在 C# 中创建具有 JPG 和 AlphaChannel 的 PNG

标签 c# png jpeg mask alphablending

如果我有两个包含图像和 Alpha channel 的独立 JPG 文件,如何创建 PNG 文件?

JPG 图像 + JPG 蒙版 --> 具有透明度的 PNG

我尝试过 WPF 解决方案:

image.OpacityMask = new ImageBrush ( new BitmapImage ( uriMask ) );

和 System.Drawing。

Image bmpMask = Image.FromFile ( maskFilePath );
gfxNewImage.SetClip (  Graphics.FromImage (bmpMask) );

但我对两者都有问题(黑色背景或全黑)

有什么想法或例子吗?

谢谢

最佳答案

好吧,假设您有一张 JPEG 图片和一张带有 Alpha channel 的 Png 图片。 您应该这样做,并且只有当这 2 个图像大小相同时它才会起作用。

Bitmap jpegFile = new Bitmap("JpegFile.jpg");
Bitmap alphaFile = new Bitmap("Png.jpg");

for(int i=0;i<jpegFile.Width;i++)
{
   for(int j=0;j<jpegFile.Height;j++)
    {
       Color withAlpha = jpegFile.GetPixel(i,j);
           withAlpha.A = alphaFile.GetPixel(i,j).A;
       jpegFile.SetPixel(withAlpha);
    }
}

关于c# - 在 C# 中创建具有 JPG 和 AlphaChannel 的 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7360976/

相关文章:

c# - 后台 C# 中的线程

c# - 如何验证两个相互依赖的属性?

java - 在 Java 中处理 PNG

java - 将 TIFF 转换为 JPEG 在 Linux 中不起作用 - 无法为此操作呈现 RenderedOp

c# - 尝试根据比较合并两个字符串数组

javascript - 单击透明图像

matlab - 使用 surf 创建具有透明背景的 png 文件的 3D 图像

python - 无法读取 tensorflow 中的jpeg图像

android - BitmapFactory.decodeFile() 文件在解码时是否解压缩 JPEG 图像?

c# - 使用数据 ASP.NET C# 填充 Gridview EmptyDataTemplate