GDI +图像转换从图元文件,以黑色背景JPEG / GIF结果
-
11-09-2019 - |
题
让我转换图元文件(EMF是精确的)的JPEG或GIF(并不重要,只要它与浏览器兼容),当我做了转换,所有的透明像素的变黑。我不知道如何做到这一点的GDI +,但这里是我使用的保存文件的方法:
Dim Img As System.Drawing.Imaging.Metafile = New System.Drawing.Imaging.Metafile(stream)
Img.Save(Server.MapPath("/FileName.gif"), System.Drawing.Imaging.ImageFormat.Gif)
解决方案
检查鲍勃鲍威尔的网站。他的公制,废话吨GDI +的东西。 这一个是专门为反式GIF的
其他提示
据我所知元文件不包含背景信息 - 它仅仅是透明的。
有一个简单的解决办法是简单的彩色背景,你想要的颜色。
E.g。下面的代码创建的位图的大小为原始图像相同,得出白色背景,然后吸取了背景之上的图元文件图像。
Rectangle imageRect = new Rectangle(0, 0, originalImage.Width, originalImage.Height);
Bitmap newImage = new Bitmap(originalImage.Width, originalImage.Height);
Graphics g = Graphics.FromImage(newImage );
g.FillRectangle(new SolidBrush(Color.White), imageRect);
g.DrawImage(originalImage, new Point(0, 0));
我的理解是需要将信息提供给框架,关于目的地和源图像的图像格式,以便为alpha通道被正确地转换。
具体的颜色信息:每像素和是否存在是每像素α或透明色或为整个图像中的一个α值的比特 - 东西一样。
不过,我不能确定这是如何在VB做(或.NET都为此事) - 我用这些类型的操作...
本地C ++不隶属于 StackOverflow