DOBON.NETプログラミング道掲示板

No35604 の記事


■35604 / )  bitmapが保存できない
□投稿者/ K-1 一般人(1回)-(2024/05/03(Fri) 22:12:10)
  • アイコン環境/言語:[C#] 
    分類:[.NET] 

    画像ファイルに対し加工を行うコードを作っています。
    画像ファイルを読み込み、バイト配列に変換して、バイト配列に対して加工を行い、画像ファイルとして保存するために以下のようなコードを書きました。

    // 画像読み込み
    Bitmap bitmap = new Bitmap(@"D:\temp\moto.bmp");

    /// Bitmapをバイト配列にする
    MemoryStream mms = new MemoryStream();
    bitmap.Save(mms, ImageFormat.Bmp);
    byte[] inputdata = mms.ToArray();
    mms.Close();
    mms.Dispose();

    MemoryStream ms = new MemoryStream(inputdata);
    Bitmap output_bitmap = new Bitmap(ms);
    ms.Close();
    ms.Dispose();

    output_bitmap.Save(@"D:\temp\ato.bmp", ImageFormat.Bmp);

    変数inputdataにはBITMAPフォーマットそのままのバイナリが展開されているとこまで確認したので、BITMAP-BYTE変換は問題ないと思います。
    問題は最後の
    output_bitmap.Save(@"D:\temp\ato.bmp", ImageFormat.Bmp);

    System.Runtime.InteropServices.ExternalException: 'GDI+ で汎用エラーが発生しました。'
    というエラーが出てしまいます。
    "D:\temp\ato.bmp"には54バイトのファイルが生成されており、powershellで「format-hex .\a.bmp」とダンプをとってみると変数inputdataの先頭54バイトと同じものがはいってるぽいです。

    この「'GDI+ で汎用エラーが発生しました。'」の対処法はないでしょうか。
違反を報告
返信 削除キー/


Mode/  Pass/


- Child Tree -