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

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

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

Re[3]: pictureBoxで画像表示


(過去ログ 112 を表示中)

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

■66477 / inTopicNo.1)  pictureBoxで画像表示
  
□投稿者/ mako_chan3 (1回)-(2013/04/26(Fri) 09:57:48)

分類:[.NET 全般] 

C#初心者です。

dialogBoxで選んだ画像をpictureBoxで表示させたいと考えています。

private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Multiselect = false;
openFileDialog1.FileName = "";
openFileDialog1.Filter =
"Text Files (*.txt)|*.txt|" +
"Image Files (*.bmp, *.jpg, *.gif)|" +
"**.bmp; *.jpg; *.gif|" +
"All files (*.*)|*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
openFileDialog1.ShowReadOnly = true;
openFileDialog1.ReadOnlyChecked = false;
openFileDialog1.Title = "Open File";

//[OK]をクリックしたらピクチャーボックスに画像を表示する
if (openFileDialog1.ShowDialog() == DialogResult.OK)
・・・
pictureBox1.Image = ・・・
}
最後のところ、選んだ画像ファイルから画像データ(オブジェクト?)を取得してpictureBox.Imageに代入する方法を教えてください。
Imagelocationを使った方が良いのか、色々しらべましたがわかりませんでした。
よろしくお願いします。
引用返信 編集キー/
■66478 / inTopicNo.2)  Re[1]: pictureBoxで画像表示
□投稿者/ 魔界の仮面弁士 (199回)-(2013/04/26(Fri) 13:13:01)
No66477 (mako_chan3 さん) に返信
> dialogBoxで選んだ画像をpictureBoxで表示させたいと考えています。
画像を選択させるのに、何故最初のフィルターが *.txt なのでしょうか?


で、今回は Multiselect = false とのことなので、
pictureBox1.LoadAsnyc(openFileDialog1.FileName);
とするのが簡単かと思います。


> Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
画像選択なら、MyPictures の方が良いかも。


> pictureBox.Imageに代入する方法を教えてください。
Load/LoadAsnyc メソッドを使うのではなく、Image プロパティへの代入を
行いたいのであれば、以下の方法を試してみてください。
http://dobon.net/vb/dotnet/graphics/imagefromfile.html
http://dobon.net/vb/dotnet/graphics/drawpicture2.html

ただし Image オブジェクトを作成して pictureBox1.Image へ代入する方法をとる場合、
画像が読み取れなかった場合には Image.FromFile/Image.FromStream の呼び出しが
エラーとなりますので、実際に使う場合には例外処理も必要となります。

一方 LoadAsync メソッドを使った場合には、画像が読み取れなかったとしても
エラーとはならず、かわりに ErrorImage プロパティで設定された画像
(既定では赤バツ)が表示されるようになっています。


> Imagelocationを使った方が良いのか、色々しらべましたがわかりませんでした。
Imagelocation ではなく
ImageLocation ですね。それでも OK です。

pictureBox1.ImageLocation = openFileDialog1.FileName;
とした場合は、先の LoadAsync メソッドと同じような効果が得られます。
引用返信 編集キー/
■66479 / inTopicNo.3)  Re[2]: pictureBoxで画像表示
□投稿者/ mako_chan3 (2回)-(2013/04/26(Fri) 15:04:07)
No66478 (魔界の仮面弁士 さん) に返信
> ■No66477 (mako_chan3 さん) に返信
>>dialogBoxで選んだ画像をpictureBoxで表示させたいと考えています。
> 画像を選択させるのに、何故最初のフィルターが *.txt なのでしょうか?
>
>
> で、今回は Multiselect = false とのことなので、
> pictureBox1.LoadAsnyc(openFileDialog1.FileName);
> とするのが簡単かと思います。
>
>
>>Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
> 画像選択なら、MyPictures の方が良いかも。
>
>
>>pictureBox.Imageに代入する方法を教えてください。
> Load/LoadAsnyc メソッドを使うのではなく、Image プロパティへの代入を
> 行いたいのであれば、以下の方法を試してみてください。
> http://dobon.net/vb/dotnet/graphics/imagefromfile.html
> http://dobon.net/vb/dotnet/graphics/drawpicture2.html
>
> ただし Image オブジェクトを作成して pictureBox1.Image へ代入する方法をとる場合、
> 画像が読み取れなかった場合には Image.FromFile/Image.FromStream の呼び出しが
> エラーとなりますので、実際に使う場合には例外処理も必要となります。
>
> 一方 LoadAsync メソッドを使った場合には、画像が読み取れなかったとしても
> エラーとはならず、かわりに ErrorImage プロパティで設定された画像
> (既定では赤バツ)が表示されるようになっています。
>
>
>>Imagelocationを使った方が良いのか、色々しらべましたがわかりませんでした。
> Imagelocation ではなく
> ImageLocation ですね。それでも OK です。
>
> pictureBox1.ImageLocation = openFileDialog1.FileName;
> とした場合は、先の LoadAsync メソッドと同じような効果が得られます。

ありがとうございました。とってもわかりやすいアドバイスを頂きました。
反省としてはFileNameがパスを取得するということが分かっていなかったということですね。
C#の解説書を読むと書いてありました。注意不足でした。

引用返信 編集キー/
■66480 / inTopicNo.4)  Re[3]: pictureBoxで画像表示
□投稿者/ mako_chan3 (3回)-(2013/04/26(Fri) 15:11:08)
No66479 (mako_chan3 さん) に返信
> ■No66478 (魔界の仮面弁士 さん) に返信
>>■No66477 (mako_chan3 さん) に返信
> >>dialogBoxで選んだ画像をpictureBoxで表示させたいと考えています。
>>画像を選択させるのに、何故最初のフィルターが *.txt なのでしょうか?
>>
>>
>>で、今回は Multiselect = false とのことなので、
>> pictureBox1.LoadAsnyc(openFileDialog1.FileName);
>>とするのが簡単かと思います。
>>
>>
> >>Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
>>画像選択なら、MyPictures の方が良いかも。
>>
>>
> >>pictureBox.Imageに代入する方法を教えてください。
>>Load/LoadAsnyc メソッドを使うのではなく、Image プロパティへの代入を
>>行いたいのであれば、以下の方法を試してみてください。
>>http://dobon.net/vb/dotnet/graphics/imagefromfile.html
>>http://dobon.net/vb/dotnet/graphics/drawpicture2.html
>>
>>ただし Image オブジェクトを作成して pictureBox1.Image へ代入する方法をとる場合、
>>画像が読み取れなかった場合には Image.FromFile/Image.FromStream の呼び出しが
>>エラーとなりますので、実際に使う場合には例外処理も必要となります。
>>
>>一方 LoadAsync メソッドを使った場合には、画像が読み取れなかったとしても
>>エラーとはならず、かわりに ErrorImage プロパティで設定された画像
>>(既定では赤バツ)が表示されるようになっています。
>>
>>
> >>Imagelocationを使った方が良いのか、色々しらべましたがわかりませんでした。
>>Imagelocation ではなく
>>ImageLocation ですね。それでも OK です。
>>
>>pictureBox1.ImageLocation = openFileDialog1.FileName;
>>とした場合は、先の LoadAsync メソッドと同じような効果が得られます。
>
> ありがとうございました。とってもわかりやすいアドバイスを頂きました。
> 反省としてはFileNameがパスを取得するということが分かっていなかったということですね。
> C#の解説書を読むと書いてありました。注意不足でした。
>
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -