DOBON.NETプログラミング道掲示板
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
ツリー一括表示
bitmapが保存できない
/K-1
(24/05/03(Fri) 22:12)
#35604
└
Re[1]: bitmapが保存できない
/KOZ
(24/05/04(Sat) 01:13)
#35605
└
Re[2]: bitmapが保存できない
/K-1
(24/05/04(Sat) 08:58)
#35606
解決
済
み!
親記事 /
▼[ 35605 ]
■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+ で汎用エラーが発生しました。'」の対処法はないでしょうか。
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
[
□ Tree
]
返信
削除キー/
編集
削除
▲[ 35604 ]
/
▼[ 35606 ]
■35605
/ 1階層)
Re[1]: bitmapが保存できない
□投稿者/ KOZ
一般人(36回)-(2024/05/04(Sat) 01:13:53)
2024/05/04(Sat) 01:18:08 編集(投稿者)
■
No35604
に返信(K-1さんの記事)
> System.Runtime.InteropServices.ExternalException: 'GDI+ で汎用エラーが発生しました。'
> というエラーが出てしまいます。
Bitmap を作成するときに使った Stream オブジェクトは破棄しないでください。
Bitmap output_bitmap = new Bitmap(ms);
output_bitmap.Save(@"D:\temp\ato.bmp", ImageFormat.Bmp);
ms.Dispose();
この順番であればOKです。
あと、Stream に関しては Close = Dispose ですので、どちらか一方を実行するだけで良いです。
Stream の実装
https://referencesource.microsoft.com/#mscorlib/system/io/stream.cs,dc4ffe046b847b84
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
[
親 35604
/
□ Tree
]
返信
削除キー/
編集
削除
▲[ 35605 ]
/ 返信無し
■35606
/ 2階層)
Re[2]: bitmapが保存できない
□投稿者/ K-1
一般人(2回)-(2024/05/04(Sat) 08:58:28)
■
No35605
に返信(KOZさんの記事)
> 2024/05/04(Sat) 01:18:08 編集(投稿者)
うまくいきました!
想定通りの画像が保存されていることも確認しました。
ありがとうございます。
解決
済
み!
違反を報告
Javascriptを有効にしてください
この投稿が掲示板のルールに違反しており、何らかの対処が必要であると思われる場合は、以下のフォームを利用して管理人に報告することができます。
マルチポストの報告は、
返信フォーム
の上にある「マルチポストの報告」リンクをご利用ください。
この機能の悪用は絶対にしないでください。
悪用されたと管理人が判断した場合は、予告なしで厳しい対処がなされる可能性があります。
確認等の目的で、入力されたメールアドレス宛に返信メールが送信される可能性があります。メールの受信ができないメールアドレスは入力しないでください。
下のフォームが使用できない場合は、
メールフォーム
を使って管理人にご報告ください。
お名前(必須)
メールアドレス(必須)
本文(必須)
(違反理由など)
[
親 35604
/
□ Tree
]
返信
削除キー/
編集
削除
Mode/
通常管理
表示許可
Pass/
HOME
HELP
新規作成
新着記事
ツリー表示
スレッド表示
トピック表示
発言ランク
ファイル一覧
検索
過去ログ
-
Child Tree
-