2009-07-08 3 views
2

メタファイル(EMFは正確)をjpegまたはgif(ブラウザと互換性がある限り問題ありません)に変換しています。すべての透明ピクセルが黒に変換されます。私はどのようにGDI +でこれを行うには考えているが、ここで私は、ファイルを保存するために使用しています方法は次のとおりです。メタファイルからJPEG/GIFへの画像変換が黒い背景に表示される

私の理解では、あなたが先の画像フォーマットについては、フレームワークに情報を提供する必要があるということです
Dim Img As System.Drawing.Imaging.Metafile = New System.Drawing.Imaging.Metafile(stream) 
Img.Save(Server.MapPath("/FileName.gif"), System.Drawing.Imaging.ImageFormat.Gif) 

答えて

0

アルファチャンネルが正しく翻訳されるように画像をソースします。

特定の色情報:ピクセルあたりのビット数、ピクセルごとのアルファ、透明な色、または画像全体の単一のアルファ値があるかどうか - そのようなもの。

しかし、私はこれは(またはまったくそのことについては、.NETで)VBでどのように行われるかどうか分からない - ...私はこれらのタイプの操作のためのネイティブC++を使用

1

私が理解しているように、メタファイルには背景に関する情報が含まれていません。単純に透過的です。

単純な回避策は、背景色を簡単に色分けすることです。

など。次のコードは、元のイメージと同じサイズのビットマップを作成し、背景の白を描画し、メタファイルのイメージを背景の上に描画します。

 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)); 
関連する問題