让我转换图元文件(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 ++
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top