2

だから私はメタファイル(正確には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)
4

3 に答える 3

6

ボブ・パウエルのウェブサイトをチェックしてください。彼はGDI+のもののメートル法のがらくたトンを持っています。 これは特にトランスGIF用です

于 2009-07-08T22:49:53.267 に答える
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));
于 2010-04-06T13:24:35.333 に答える
0

私の理解では、アルファチャネルを正しく変換するには、宛先画像とソース画像の画像形式に関する情報をフレームワークに提供する必要があります。

具体的には、色情報:ピクセルあたりのビット数、およびピクセルあたりのアルファ値、透明色、または画像全体の単一のアルファ値があるかどうかなどです。

ただし、これがVB(または.NET)でどのように行われるかはわかりません-これらのタイプの操作にはネイティブC++を使用しています...

于 2009-07-08T22:49:31.940 に答える