我正在System.Drawing.Graphics
类的帮助下使用C#开发图像编辑器应用程序。该应用程序也必须能够在Windows和Linux上运行。
场景很简单,我有一个背景图片(jpeg,24bpp,不渐进式),我必须在其上绘制透明的png图像。我正在使用以下模式(使用其他坐标和更多图像):
Bitmap backgroundJpg = new Bitmap("bg.jpg");
Bitmap transparentPng = new Bitmap("transp.png");
using (var g = Graphics.FromImage(backgroundJpg))
{
g.DrawImage(transparentPng, new Point(0, 0));
}
backgroundJpg.Save("test.jpg");
在 Windows 上,此过程的结果正常
在 Linux 上,看起来png图像没有被正确处理,看起来它们在被Graphics
实例绘制时并不“透明”。 (编辑:我已经检查过,它们是透明的,但不像在Windows上那样。)
编辑:如果它在Windows和Linux上运行,我也对替代解决方案感兴趣。
编辑2:只有当透明图像背后有时,透明度才会显示为。如果在空白的Format32bppArgb
图像上绘制,则表示没问题。
其他信息:
也许我缺少一些配置选项来强制它在绘图过程中保持透明,或者Linux本身有一些配置。
Linux配置: (如果有帮助)
带有
的BeagleBone Black设备
- Debian GNU / Linux 7.9(wheezy)
- 单声道:
- JIT编译器:4.0.5
- 建筑:armel,vfp + hard
- GC:sgen
任何帮助将不胜感激,并随时询问是否需要任何其他细节。谢谢!
注意:在下面的图像中,红色“X”是黑色背景的一部分,蓝色图像是透明的png。