プロが教える店舗&オフィスのセキュリティ対策術

プログラミングの初心者です。
現在、以下の点について困っています。

現在業務で画像ファイルをpngからbmpに変換するプログラムを作成しています。
以下のようなソースで対象のファイルを変換してみたのですが、変換後の画像ファイルをアドビのフォトショで開こうとすると読み込みに失敗します。

※usingでDrawing.Imagingは宣言済み
Bitmap bmp = new Bitmap("failename.png");
bmp.Save("failname.bmp", ImageFormat.Bmp);
bmp.Dispose();

念のため、ペイントで適当な画像を作成して同様の処理をしてみたところ、そちらは上手く変換できたようで、フォトショでも普通に開けることが出来ました。
対象の画像ファイルは、変換前ではちゃんとフォトショで開けることが出来ます。

フォトショでもちゃんと読み込めるファイルを作成するには、まだソースが足りないのでしょうか?
知っている方がおられましたら、アドバイスをお願いします。

A 回答 (1件)

 こんにちは。


 手元にフォトショップが無いのですが、アルファチャンネル絡みの様な気がします。
 セーブするビットマップフォーマットを明確に指定してみては如何でしょうか。

private void Form1_Load(object sender, EventArgs e)
{
Bitmap src = new Bitmap("test.png");
Bitmap dst = new Bitmap(src.Width, src.Height, PixelFormat.Format24bppRgb);//RGB24bitにする
Graphics gfx = Graphics.FromImage(dst);

gfx.DrawImage(src, 0, 0);
dst.Save("test.bmp", ImageFormat.Bmp);

gfx.Dispose();
src.Dispose();
dst.Dispose();
}
    • good
    • 0
この回答へのお礼

こんにちは。
machongolaさんが提示してくださったソースを反映したところ、今度はちゃんと変換処理がなされました。
変換画像が外部から取得する画像なので詳しい仕様はわからない(terapadでどの変換コードでも文字化けてしまう)のですが、どうやら指摘通りであったようです。

回答ありがとうございました。

お礼日時:2009/08/07 09:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!