C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: Vistaと7で作成される画像が異なる


(過去ログ 84 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■49872 / inTopicNo.1)  Vistaと7で作成される画像が異なる
  
□投稿者/ まみ (5回)-(2010/05/21(Fri) 10:55:47)

分類:[VB.NET/VB2005 以降] 

2010/05/21(Fri) 11:18:41 編集(投稿者)

みなさんこんにちは。
VB2008を使用して、元々ある画像を上に重ねて別の画像を作成しようと思っています。
例えば、以下のように、maru1.gifという画像を、300×300pxのキャンバス上に重ねようとしてみました。
ちなみに、maru1.gifは、100×100pxの球体を描いた画像で、球体の外側の領域は透過色に設定してあります。

Dim b As New Bitmap(300, 300, Imaging.PixelFormat.Format24bppRgb)
Dim bMaru As Bitmap = New Bitmap("ファイルのパス\maru1.gif")
Dim g As Graphics = Graphics.FromImage(b)
g.Clear(Color.White)
g.DrawImage(b, 100, 70, 75, 75)
g.Dispose()
bMaru.Dispose()
b.Save("ファイルのパス\output.png", Imaging.ImageFormat.Png)
b.Dispose()

これをWindows Vistaで実行すると、球体の画像はきれいに表示されるのですが、
Windows 7で実行すると、球体の外側の輪郭の部分に、黒く汚いノイズのようなものが現れます。
これは、おそらく、キャンバスのビットマップのインスタンス作成時に、誤ってPixelFormatを
Format24bppRgbにしてしまったため、maru1.gifの透過色が悪さをしているのだと思いますが、
どうしてVistaでは問題なくきれいに画像が作成されたのでしょうか?
(確かにbのインスタンス作成時にPixelFormatを省略したり、32ビットにしたりするとWindows 7でも問題ありません。)

あと、同じ32ビットでもPixelFormatの32bppRgbと32bppArgbはどのように違うのでしょうか。

宜しくお願いたします。
引用返信 編集キー/
■49884 / inTopicNo.2)  Re[1]: Vistaと7で作成される画像が異なる
□投稿者/ aetos (298回)-(2010/05/21(Fri) 13:21:11)
No49872 (まみ さん) に返信

# 現象の方はわかりません

> あと、同じ32ビットでもPixelFormatの32bppRgbと32bppArgbはどのように違うのでしょうか。

http://msdn.microsoft.com/ja-jp/library/system.drawing.imaging.pixelformat.aspx

アルファ成分(不透明度)があるかないかの違いです。
引用返信 編集キー/
■49888 / inTopicNo.3)  Re[2]: Vistaと7で作成される画像が異なる
□投稿者/ Hongliang (630回)-(2010/05/21(Fri) 15:59:42)
// Windows 7 が手元にないので検証できません。

Windows 7 で GDI+ がバージョンアップされたと聞いたことがあります。その影響の可能性があるかもしれません。
// GDI+ のバージョンアップの話自体、裏を取ってませんけど。GIF エンコーダが強化されてるとかなんとか。
引用返信 編集キー/
■49931 / inTopicNo.4)  Re[3]: Vistaと7で作成される画像が異なる
□投稿者/ まみ (6回)-(2010/05/24(Mon) 10:44:16)
aetosさま
> アルファ成分(不透明度)があるかないかの違いです。
そうでした。何を勘違いしていたのでしょう(笑)

Hongliangさま
>Windows 7 で GDI+ がバージョンアップされたと聞いたことがあります。その影響の可能性があるかもしれません。
なるほど。Windows7の結果のように、Format24bppRgbで透過のビットマップを重ねようとすると透過が悪さをするのは
本来の結果であるとここでは理解することにします。
みなさま、ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -