GDI+でジェネリックエラーが発生したのを解決する
2022-01-23 11:58:10
DNN Fckエディタに画像アップロード時のサイズ変更機能がなくて不便を感じているので、画像サイズを変更する機能を追加します。
DNNコアのUploadFile()のメソッドを変更したくないので、fckエディタのアップロードのページを変更するだけです。
変更後のワークフローは
1. 画像アップロードを選択し、DNN UploadFile()を呼び出して画像をアップロードする。
2. サーバーにアップロードされたファイルを読み込んで、一時的に保存する Image
3. GDI+ GetThumbnailImageを呼び出して、画像のサイズを変更し、元のファイルを上書きします。
店舗への3歩目で実行すると、必ずA generic error occurred in GDI+となる問題が発生します。
最終的に原因が判明したのは:
ソースビットへのアクセスを維持するために、GDI+はあらゆるソースファイルをロックし、アプリケーションにあらゆるソースストリームのライフを維持するよう強制します。
ビットマップ
または
画像
オブジェクトを作成します。
解決策は、インデックスまたは非インデックスの画像を作成することです。
Graphics.DrawImage()
を使用して、イメージを新しく作成されたビットマップオブジェクトにコピーし、新しいイメージのサイズを変更します。
サンプルコードです。
1
ビットマップ bm1
=
(Bitmap)Image.FromFile()。
"
doodaa.gif
"
<スパン
);
2
ビットマップ bm2
=
<スパン
新しい
ビットマップ(bm1.Width,bm1.Height)。
3
グラフィックス g
<スパン
=
<スパン
Graphics.FromImage(bm2)。
<スパン 4
g.DrawImageUnscaled(bm1,
<スパン
0
,
<スパン
0
);
5
//
bm2 には、インデックスを持たないバージョンの画像が含まれるようになりました。
<スパン 6
//
今度はXを描きます。
7
g.DrawLine(blah
-
ブラー
.) ;
<スパン 8
g.DrawLine(blah
-
ブラー
.) ;
<スパン 9
//
グラフィックを消す
<スパン 10
g.Dispose()を実行します。
<スパン 11
//
を作成し、新しいgifを保存します。
<スパン 12
bm2.Save()
"
foobar.gif
"
, ImageFormat.Gif)。
<スパン 13

2

3

<スパン 4

5

<スパン 6

7


<スパン 8


<スパン 9

<スパン 10

<スパン 11

<スパン 12

<スパン 13

以下は、マイクロソフトのKBに記載されている問題点です。
http://support.microsoft.com/?id=814675
関連
-
AttributeError: 'dict' オブジェクトは 'append' という属性を解決していません。
-
pipの実行エラーです。ランチャーで致命的なエラーが発生しました。Unable to create process using '"'
-
Bluetooth接続のタイムアウト現象
-
エラー: 非静的メンバ関数の無効な使用
-
MySql エラー: java.sql.SQLException: ユーザー 'root'@'localhost' (パスワード: YES を使用) のアクセスが拒否されました。
-
ModuleNotFoundError: scipy'という名前のモジュールがない ソリューション
-
R言語ファイル読み込みエラー
-
ユニティ再生gif
-
Python で 'str' と 'int' のインスタンス間でエラー '>=' がサポートされていない
-
mscorlib.dll で "TargetInvocationException" 型の例外が発生するが、ユーザーコードで処理されない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
C# 遅延プログラム遅延
-
Linux での C++ コンパイルエラー:コマンドラインオプション "-std=c++11" が認識されない。
-
場所 0x00000004 の読み取りでアクセス違反が発生しました。
-
collect2.exe [エラー] ld が 1 の終了ステータスを返しました。
-
問題 free(): 無効な次のサイズ (fast): 0x0000000001475e70 ***
-
ldap_bind: 無効な認証情報 (49)
-
Gulpのマルチタスクエラーです。AssertionError [ERR_ASSERTION]: タスク関数を指定する必要があります ソリューション
-
matlabでよく使われる論理演算
-
android spinner 初期設定 ItemSelectedListener 即時実行 解決方法
-
シェルを実行するためにexecを使用するant