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

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

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

Re[2]: :ヒ゛ットマッフ゜ファイルの保存と読み出しについて


(過去ログ 121 を表示中)

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

■72733 / inTopicNo.1)  ビットマップファイルの保存と読み出しについて
  
□投稿者/ mako_chan3 (1回)-(2014/07/09(Wed) 11:57:49)

分類:[C#] 

使用言語はC#、環境はVisual Studio 2010です。
pictureBoxに描いた画像を保存した後、それを読み出し再度同じpictureBoxに描画したいと考えています。
サンプルコードがあるのでそのまま記述しました。
保存はできましたが、読み出しで開くときに
「'SystemIO IOException'のハンドルされていない例外がmscorlib.dllで発生しました。」
というコメントが出て、読み出し動作が止まります。
原因はどこにあるのでしょうか。
保存、読み出しのコードは下記の通りです。
よろしくお願いいたします。

private void File_Open_Click(object sender, EventArgs e)
{
Bitmap bmp = new Bitmap(pb1.Image);
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
int x, y;
BinaryReader br = new BinaryReader(new FileStream(openFileDialog1.FileName,
FileMode.Open, FileAccess.Read));
x = 0; y = 0;
while(true)
{
x = br.ReadInt32();
if(x == 999) break;
y = br.ReadInt32();
bmp.SetPixel(x, y, Color.Black);
}
}
pb1.Image = bmp;
}

private void File_Save_Click(object sender, EventArgs e)
{
int i, j, nx, ny, rr, bb;
Color col;

if(saveFileDialog1.ShowDialog() == DialogResult.OK);
{
BinaryWriter bw = new BinaryWriter(new FileStream(saveFileDialog1.FileName,
FileMode.Create, FileAccess.Write));
nx = pb1.Width;
ny = pb1.Height;
Bitmap bmp = new Bitmap(pb1.Image);

for( j = 0; j < ny; j++)
for( i = 0; i < nx; i++)
{
col = bmp.GetPixel(i,j);
rr = col.R; //赤成分を調べる
bb = col.B; //青成分を調べる
if(rr == 0 && bb == 0) //黒画像ならば
{
bw.Write(i); //書き込む
bw.Write(j);
}
}
bw.Write(999);
bw.Write(999);
}
}
引用返信 編集キー/
■72734 / inTopicNo.2)  Re[1]:ヒ゛ットマッフ゜ファイルの保存と読み出しについて
□投稿者/ 魔界の仮面弁士 (47回)-(2014/07/09(Wed) 12:17:42)
No72733 (mako_chan3 さん) に返信
> 使用言語はC#、環境はVisual Studio 2010です。
インデント保持のため、ソースコードを貼る場合には
「図表モード」での投稿をお願いします。

また、掲示板投稿時の注意書きに、
  【半角カナは使用しないでください。文字化けの原因になります。】
との記述があったかと思います。再読の上、ご協力をお願いします。


> サンフ゜ルコート゛があるのでそのまま記述しました。
どこのサンプルでしょうか?


> 原因はどこにあるのでしょうか。
開いたファイルを閉じていないからですね。
FileStream を使用後に閉じるため、Close メソッドの呼び出しが必要です。

また、こういう場合には using ブロックを併用する事が望ましいです。
http://www.divakk.co.jp/aoyagi/csharp_tips_using.html
引用返信 編集キー/
■72749 / inTopicNo.3)  Re[2]: :ヒ゛ットマッフ゜ファイルの保存と読み出しについて
□投稿者/ mako_chan3 (2回)-(2014/07/11(Fri) 07:50:04)
No72734 (魔界の仮面弁士 さん) に返信
> ■No72733 (mako_chan3 さん) に返信
>>使用言語はC#、環境はVisual Studio 2010です。
> インデント保持のため、ソースコードを貼る場合には
> 「図表モード」での投稿をお願いします。
>
> また、掲示板投稿時の注意書きに、
>   【半角カナは使用しないでください。文字化けの原因になります。】
> との記述があったかと思います。再読の上、ご協力をお願いします。
>
>
>>サンフ゜ルコート゛があるのでそのまま記述しました。
> どこのサンプルでしょうか?
>
>
>>原因はどこにあるのでしょうか。
> 開いたファイルを閉じていないからですね。
> FileStream を使用後に閉じるため、Close メソッドの呼び出しが必要です。
>
> また、こういう場合には using ブロックを併用する事が望ましいです。
> http://www.divakk.co.jp/aoyagi/csharp_tips_using.html

ご助言ありがとうございます。
お礼が遅れてしまい、恐縮です。
サンプルコードは、CQ出版社の「[改訂版]ディジタル画像処理の基礎と応用」のニューラルネットワークの章に掲載(添付のCD-ROM内)されて
いたものです。
トライしてみます。
また、結果を報告させていただきます。

引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -