質問

だから私は(限り、それはブラウザと互換性だとは関係ありません)、私は、変換を行う際に、透明ピクセルのすべてが黒を回すJPEGまたはGIFに(EMFは、正確には)メタファイルを変換しています。私はどのように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 +のもののメトリックがらくたトンを持っています。 この1つはトランスGIFののために特別である。

他のヒント

私はそれを理解したようメタファイルには、背景のための情報が含まれていません - それは単に透明です。

周りの簡単な作業は、単に背景にしたい色を着色するでます。

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

        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));

私の理解では、アルファチャンネルを正しく変換するためには、宛先と送信元の画像の画像フォーマットについては、フレームワークに情報を提供する必要があるということです。

具体的に色情報:ピクセルあたりのビットとピクセル単位のアルファまたは透明色または画像全体のための単一のアルファ値があるか否か - そのようなものは。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top