
ASP.NET、フレームワークは.net4.0環境です。
言語はc sharpです。
FileUploadコンロールを使って、POSTした画像を保存するような
ものを作りたいと考えています。
想定は4MB以内のファイルなのですが、4MB以内でも、色数が多いと
うまくいかないようで悩んでいます。
以下のようなコードを書きました。
--
HttpPostedFile imageData = FileUpload1.PostedFile; //投稿ファイル
byte[] buffer = new byte[imageData.InputStream.Length];
imageData.InputStream.Read(buffer, 0, Convert.ToInt32(imageData.InputStream.Length));
ImageConverter ImgConv = new ImageConverter();
Bitmap bitmapSave = (System.Drawing.Bitmap)ImgConv.ConvertFrom(buffer);
bitmapSave.Save(temp_path, ImageFormat.Jpeg);
//temp_pathには保存先のパスが入っています。
--
bitmapSave.Saveで、以下のようなエラーが出てしまいます。
--
ExternalExceptionがキャッチされました。
GDI+ で汎用エラーが発生しました。
--
再現性がイマイチで、色数が少なければうまくいくようです。
ただ、たとえば以下のような色数の多い広告画像だとエラーに
なってしまいます。
http://www.tsukumo.co.jp/shop/tirashi/akiba_02.h …
画像のwidth、heightを見たいのと、pngやgifであってもjpegに
変換したいので、bitmap.Saveを使う形式でうまく保存できるように
直したいのですが、ご教授いただけないでしょうか。
No.1ベストアンサー
- 回答日時:
現象確認しました。
大サイズのbitmap(jpeg約3MB -> 展開後約45MB)でjpeg保存エラー。
これ、ASP.NETというよりも、GDI+の一般的なエラーのようで、入出力に問題がなければ、内部リソースの欠乏とか、そんな原因でも起きているようですね。
GDI+のエラーは事例が多数ありますが、入出力のパスに問題がないとすると、内部リソースの確保とか。
http://www.codeproject.com/Questions/52709/C-Bit …
のSolution4/5あたりを試してみられればと。
自分は最初から、GDI+は大量メモリを多用する処理はNGのような気がして、外部コンポーネントで画像処理しています。
有償製品はGraphicMill、LeadToolsなどいっぱいありますが、無償のものでは、ImageResizer
http://imageresizing.net/docs/howto/upload-and-r …
あたりどうでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
デバッグ中のエラーのことで教...
-
適切な変換関数が存在しない???
-
Handlesについて
-
コンパイルできません。
-
RightとLeft関数のライブ...
-
fortranでプログラムを実行する...
-
BC30002: 型 'ListItem' が定義...
-
Excelのエラーで困ってます。
-
visual C++ でビルドの中止がで...
-
「マクロが再定義されました」...
-
左側がクラス、構造体、共用体...
-
VB2008で定数に色の設定をした...
-
OpenSSLでOPENSSL_Applinkが見...
-
VBScriptのエラーの見つけ方及...
-
アプリケーションエラーの原因追求
-
HEWを使用しているのですが、こ...
-
【R8C/Tinyマイコン】エラーに...
-
VC6からVS2005への移行エラーに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
python エラー
-
エクセルのエラーメッセージ「4...
-
Excelのエラーで困ってます。
-
適切な変換関数が存在しない???
-
fortranでプログラムを実行する...
-
コンパイルできません。
-
ビルド失敗 指定されたファイ...
-
VB2008で定数に色の設定をした...
-
バッチからsqlplusの接続エラー...
-
HEWを使用しているのですが、こ...
-
デバッグ中のエラーのことで教...
-
visual C++ でビルドの中止がで...
-
DLL関数を使ったプログラム
-
Arduinoに関する質問
-
sys/time.hのインクルードがで...
-
Visual Studioのstrcpy_sについて
-
BC30002: 型 'ListItem' が定義...
-
RightとLeft関数のライブ...
-
VBAでファイルを開くプログラム...
-
HANDLEの宣言でのエラー
おすすめ情報