C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: GetHdcの開放について


(過去ログ 75 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■44284 / inTopicNo.1)  GetHdcの開放について
  
□投稿者/ 左 (8回)-(2009/12/04(Fri) 03:20:54)

分類:[.NET 全般] 

前の質問ではお世話になりました
現在Bitbltをしての画像操作を行っているのですが

for分で取得と開放を繰り返し行っているのですが
ある程度繰り返すと
['System.ArgumentException' のハンドルされていない例外が System.Drawing.dll で発生しました。]
といったようなエラーがでてしまいます

bitmapを生成するだけならエラーは出ないので
なにか開放していないのかなと思っているのですが・・・

なにか問題があれば教えていただけないでしょうか


for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
for(int z = 0; z < 5; z++){

bitmapMainEditor[i, j, z] = new Bitmap(1920, 1920, PixelFormat.Format16bppRgb555);
g1 = Graphics.FromImage(bitmapMainEditor[i, j, z]); // 加工画像

hdc1 = g1.GetHdc();

//ここらへんでBitbltの処理

g1.ReleaseHdc(hdc1);
g1.Dispose();
}
}
}
引用返信 編集キー/
■44285 / inTopicNo.2)  Re[1]: GetHdcの開放について
□投稿者/ επιστημη (2302回)-(2009/12/04(Fri) 06:08:43)
επιστημη さんの Web サイト
2009/12/04(Fri) 08:34:25 編集(投稿者)

> 'System.ArgumentException' のハンドルされていない例外が...

それがどこで(何を呼んだときに)発生していますか?

# 約400万pixelのBitmapを125個確保することになりますが...メモリ足りてます?

引用返信 編集キー/
■44291 / inTopicNo.3)  Re[2]: GetHdcの開放について
□投稿者/ 左 (9回)-(2009/12/04(Fri) 12:21:00)
エラーの発生箇所ですが
hdc1 = g1.GetHdc();
ここを呼んだ時に発生しますね。

メモリに完成してですが
new Bitmapするだけなら問題ないんですよね
(といってもBtimapを生成するときのサイズが小さくするとエラーは発生しないのでメモリが足りなくなっているとは思いますが)

なので現在気になっているのは
 ・Graphics.FromImageかg1.GetHdcを行うと元のBitmapのサイズが増えたりするのか
 ・Graphics.FromImageかg1.GetHdcの開放は問題ないのか

といった所なんですが

メモリに関しては仕事から帰った後に色々と調べて見ますー

引用返信 編集キー/
■44324 / inTopicNo.4)  Re[3]: GetHdcの開放について
□投稿者/ 左 (10回)-(2009/12/04(Fri) 21:59:28)
調べてみたところやはりメモリでした

ちょっとやりたい事とずれてきたので
一度閉めさせていただきます

ちゃんと考えてから質問するようにします
申し訳ありませんでした。
引用返信 編集キー/
■44325 / inTopicNo.5)  Re[4]: GetHdcの開放について
□投稿者/ 左 (11回)-(2009/12/04(Fri) 21:59:58)
閉めますー
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -