質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

2133閲覧

やさしいC# 第2版にて、2章の画像表示を試していますが、表示されません。

Shibami

総合スコア13

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/12/09 05:56

編集2018/12/09 08:03

前提・実現したいこと

初心者です。
やさしいC# 第2版(高橋 麻奈 著)を読みながら、C#を勉強しようとしています。
第2章の2.3の画像を表示させるレッスンで、以下のエラーが発生しました。
どうすれば、画像が表示されるのでしょうか?
ご教示、よろしくお願いします。

発生している問題・エラーメッセージ

コンソール?上で表示されているエラーです。↓ ------------------------------------------------------------------------------------------ ハンドルされていない例外: System.IO.FileNotFoundException: c:\sample\car.bmp 場所 System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement) 場所 System.Drawing.Image.FromFile(String filename) 場所 Treaning4.Main() 場所 C:\Users\質問者の氏名\Documents\Visual Studio 2015\Projects\Treaning4\Treaning4\CodeFile1.cs:行 12 続行するには何かキーを押してください . . . ------------------------------------------------------------------------------------------ Visual Studio(2015)上で、コードをビルドしたときにエラーはでませんが、 デバックなし開始後、コンソール?上でエラーが表示され、画像が表示されません。 目的の画像(BMP)のファイル名は、car.bmp にし、Cドライブの下にsampleというフォルダを作成し、 その中に保存しています。

該当のソースコード

using System.Windows.Forms; using System.Drawing; class Treaning4 { public static void Main() { Form fm = new Form(); fm.Text = "サンプル"; PictureBox pb = new PictureBox(); pb.Image = Image.FromFile("c:¥¥sample¥¥car.bmp"); pb.Parent = fm; Application.Run(fm); } }

試したこと

画像を、Cドライブの直下に移動し、ソースコードを書き直しましたが、
やはりダメでした。

補足情報(FW/ツールのバージョンなど)

以下は実行時のVisual Studioの画面です。
イメージ説明
ozwk様のご要望により、エクスプローラ内をキャプチャして載せます。↓
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/12/09 06:06

「コンソール?でエラーが表示され」というのは具体的にどういうものですか? エラーメッセージが出ていたら省略しないでそのままコピペしてください。
Shibami

2018/12/09 06:09

メッセージありがとうございます。エラーメッセージを画像として載せようとしたのですが、できていませんでした。もう一度、エラーメッセージを入力して投稿し直しましたので、よろしければ、ご確認ください。
pepperleaf

2018/12/09 07:01 編集

よく分からないのですが、、、 エラーで "c:\\sample\\car.bmp" バックスラッシュが 2個なんでしょう? そのまま、コピペしたら、 \ (バックスラッシュ)は一つになると思います。 もっとも、余分にあっても認識するみたいですが、、。
Shibami

2018/12/09 07:30

メッセージありがとうございます。コンソールのエラーメーッセージをコピペして、Visual Studioのコードを書くスペースにコピペすれば、¥¥が¥になるという意味ですか?今、試してみると、¥¥が//に変わりました。何か根本的に間違っているのでしょうか?
ozwk

2018/12/09 07:32

ちょっとこれコピーしてソースコードに貼って動かしてみてください:"c:\\sample\\car.bmp"
Shibami

2018/12/09 07:37

メッセージありがとうございます。頂いたテキストを12行目の()内にコピペして動かしてみましたが、同じエラーが表示されました。ちなみに、コピペすると、¥はすべて\に変わりました。
Shibami

2018/12/09 07:39

pepperleaf様。/ではなく、\(半角)です。記述間違いです。申し訳ございません。
ozwk

2018/12/09 07:42

差し支えなければ該当フォルダをエクスプローラで開いて画像載せてください
Shibami

2018/12/09 08:00

承知しました。投稿内容を修正いたしますので、お待ち下さい。
ozwk

2018/12/09 08:02

bmp.bmpだろうなという探りだったので…
Shibami

2018/12/09 08:06

おっしゃる通り、初歩的なミスです。エクスプローラのキャプチャを追加いたしました。念のため、画像のプロパティも載せました。
guest

回答2

0

FileNotFoundException というのは、ディスク上に存在しないファイルにアクセスしようとして失敗したときにスローされる例外です。

それが、

pb.Image = Image.FromFile("c:¥¥sample¥¥car.bmp");

で出ていると思いますが、ということは引数 "c:¥¥sample¥¥car.bmp" で指定されるファイルが存在しないということになります。

ファイルがあるか調べてみてください。

投稿2018/12/09 06:18

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Shibami

2018/12/09 06:25

再度、ファイルを確認してみました。間違いなくCドライブの下のsampleというフォルダの中に、目的の画像ファイル(BMP)があります。そして、ビルド後に再度デバックなし開始を試しましたが、同じエラーがでました。
Shibami

2018/12/09 06:25

ファイル名も間違いないようです…。
退会済みユーザー

退会済みユーザー

2018/12/09 06:45

Visual Studio を c:¥sample に読み取り権限のあるアカウントで立ち上げているでしょうか? 権限の問題で FileNotFoundException が出るのかは分かりませんが(違うような気もしますが)、c:¥sample¥car.bmp が間違いなく存在するなら権限の問題ぐらいしか思いつかないです。
Shibami

2018/12/09 07:24

権限の問題ということは、管理者としてVisual Studioを起動すればよろしいですか?念のため、Visual Studioのアイコンを右クリックから、管理者として実行し、再度コードをデバックなしで開始しましたが、同じエラーが表示されました。
YAmaGNZ

2018/12/09 07:34

拡張子を表示していなくて、実際のファイル名が"car.bmp.bmp"になっているとか
Shibami

2018/12/09 07:49

YAmaGNZ様。メッセージありがとうございます。ご指摘の通り、ファイル名から拡張子の.bmpを抜くと、ウィンドウ画面まで進みました!!ですが、目的の画像は表示されず、真っ白な長方形が左上の隅に表示されて終わってしまいました…。
guest

0

ベストアンサー

質問のコードは実際に使われているものをコピペしたものですか?
ならば文字が違います。

C#

1c:¥¥sample¥¥car.bmp

C#

1c:\sample\car.bmp

投稿2018/12/09 07:37

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2018/12/09 07:38

エラーが正しくバックスラッシュになっているのは謎ですが、もしかしてこれはキーボードから打ったものではありませんか?
Shibami

2018/12/09 07:42

Zuishin様。メッセージありがとうございます。当サイトに投稿した文のことでしょうか?これは、コンソールに表示されたエラー、メッセージをそのままコピペしました。Visual Studio内のコードは、キーボードでうっています。
Zuishin

2018/12/09 07:44

Visual Studio 内のコードを質問にコピペしてください。 違うソースからは原因が正しく読み取れません。
Shibami

2018/12/09 07:54

他の方から、ご指摘があった通り、ファイル名から拡張子を省き、¥を\(半角)に変えると、ウィンドウ画面まで、進むことができました!!しかし、目的の画像の内容は、私がペイントで簡単に車を描いたというものなのですが、ウィンドウ内に表示されたものは、真っ白な長方形が左上の隅に現れただけです。
Shibami

2018/12/09 07:58

Visual Stadio内のコードは、'当該ソースコード'の項目に記載されているものがそうです。これは、私がキーボードで手打ちしたものではなく、コピペしたものです。Visual Stadio側では、エラーが発生していませんので、OutPutにあるメッセージのコピペは必要ないと判断しましたが、必要でしょうか?
Zuishin

2018/12/09 08:06

該当のソースコードの項目に記載されているものは「¥」(円)という文字になっていますが、これは「\」(バックスラッシュ)が正しい文字です。 ウィンドウズでは同じ形に見えても本来違う文字ですので、うまく動きません。 出力やエラーメッセージがコピペではないということであればそこで齟齬が生じます。 必要ですのでコピペしてください。 人に尋ねる時にはエラーメッセージは必ずコピペです。 でないと今回のように原因が正しく読み取れなくなります。 エラーが出なくなったのは拡張子もありますが、このバックスラッシュが直ったことも一因です。
Shibami

2018/12/09 08:15

確かに、おっしゃる通り回答者様達を混乱させてしまいました。質問も初めてだったもので、必要な情報が何かということも、イマイチ理解していませんでした。ご指導、ありがとうございます。勉強になりました。
Zuishin

2018/12/09 08:21

あとその画像をこちらで確認できるように質問に貼り付けてください。 もしかしたらフォームからはみ出しているだけかもしれません。
Shibami

2018/12/09 08:22

画像の容量を小さくすると、無事にウィンドウ上にも画像が表示されました!再度、お礼申し上げます!
Shibami

2018/12/09 08:24

おっしゃる通りのようで、画像サイズを小さくすると表示されました!容量ではなく、画像自体が大きすぎただけだったということですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問