• ベストアンサー

画像の無い場合に

現在、連番を振った画像を格納し表示すると言った処理を作成したのですが 画像が無い場合が存在し、その場合の対処を考えています。 画像が無かった場合と言うのは拾えるのでしょうか? 無理ならば無理と言うことでもかまいませんので、 ご存知の方いらっしゃいましたらよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kentayos
  • ベストアンサー率100% (5/5)
回答No.1

kentayosといいます。どうぞよろしく。 早速ですが、方法について書きます。 まず大きく分けて2つの場合が考えられると思います。 (1)どの番号のファイルが存在しないのかわかっている場合。 (2)どの番号のファイルが存在しないのかわからない場合。 の2つです。 (1)この場合は簡単です。スクリプト内にあらかじめ、 ------------------------------------------------ if(!(n==1 || n==3 || n==7)) {    ・    ・    ・ } ------------------------------------------------ などのように、ファイルがない番号をif文などで指定しておけば そのファイル番号の部分が除かれます。 (2)この場合には2つほど方法があります。 (2)-1 ------------------------------------------------ <img src="xx.jpg" onError="shippai()"> ------------------------------------------------ このように画像のイベントハンドラに「onError」を指定しておき、 ヘッダー部分に shippai()などのように関数で処理を記述しておく方法です。 ただしこれだと、画像を実際に読み込んでみてダメだった場合の処理に なってしまいますので、あまりお勧めできません。 (2)-2 ------------------------------------------------ gazou=new Array(); for(i=1;i<=20;i++) {   gazou[i]=new Image();   gazou[i].src="xxx"+i+".jpg"; } n=1; function gazou_kirikae() {   fsize=gazou[n].fileSize; // ファイルサイズを取得   if(fsize != "-1") {     ・     ・     ・   }   if(n==20) n=1; else n++; // 20までいったら1に戻す。 } ------------------------------------------------ <body onLoad="setIntereval('gazou_kirikae()',1000)"> ------------------------------------------------ このような感じで、ファイルサイズを使って使います。 gazou[n].fileSize で現在表示させようとしている画像のファイルサイズを得ます。もしきちんと画像が存在すれば、fsize には数値が格納されますが、もし画像ファイルが存在しない場合は "-1" が格納されます。これを利用して、fsizeが-1の場合を除いて画像を表示させる処理をさせれば、画像が場合分けが可能です。

kaji_0131
質問者

お礼

kentayosさんお返事ありがとうございました。 なるほど~ファイルサイズを使用すれば良いんですね。 自分ではどうして良いのか全く分からなかったので とても、参考になりました本当にどうもありがとうございました。

関連するQ&A

  • PHPでの大量な画像を用いる場合のシステム設計

    PHPは以前より、簡単なシステム (文字中心の掲示板、少量の画像を用いたシステム、など) は趣味程度で作成はしていたのですが 今後、多くの画像を用いたシステムを作成したいと考えています。 作成した、雛形システムを利用して 新たなテーマのコンテンツ作成のきっかけになればと思っています。 ■質問の動機 さて本題ですが、質問はタイトルの通りでして、 やはりシステムのテーマに色濃くなりますと、 どうしても大量の画像を使用した、アップロード⇔表示などが 頻繁なページの作成を想定しなければならないと考えています。 既にWEBでも、PHP等を用いそのようなサイトを個人運営している型も少なくなく そのような方がどのようなファイル管理をしているのか 参考に出来ればと考えております。 ■質問 システム的には、あるキーワード、ファイル名などで検索すると 一覧にそれに対応する画像が、表示されるようにしたい。 その際にアップロード処理、画像管理として一般的な方法を知りたいです。 例1 MYSQLなどのDBに、ファイルパスを登録、 実際の画像ファイルのリソース自体は、指定の格納フォルダを作成し順次格納していく 例2 もしくはDBにSQLでBLOB型で画像ごと一緒に登録する 等が思いつくのですが 例1の場合の方が、ファイル管理が楽そうだなと思っています。 しかしながら質問の動機通り、画像アップロードを基本としたシステムとする場合、 将来的に、DBに一緒に格納した方が処理が早いものなのかな?などと。も考えています。 何分そういうシステムを作成した事がないため、 もしくは自分で作成しながら試していくと言うのも手なのですが 大量画像となると試験的なことも難しいため、 こういう方法が既知としてベターだというものがあれば、 さっくりでいいので、参考程度にお聞かせ願えますでしょうか。 たいした質問でもありませんが、よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ページ間で画像を表示。mysqlに画像を格納すべき

    ページ間でjpeg(画像)を表示させたい場合、 mysqlでは何のデータが格納されるのでしょうか。 行数は1万ほどで、1枚50KBのjpegを1行あたり0枚~30枚使います。 1)jpegそのものを格納 負荷が大きいので、この方法は避けたいです。 2)jpegのパスを格納 負荷は少なく、PHPのscandir関数(http://shoyu-ramen23.jugem.jp/?eid=90) で枚数によって処理を分けて表示することができる。 3)枚数を格納 php側で枚数によって処理を分けて表示することができますが、 jpegの枚数が減ったときに、格納した枚数を変更しないといけない。 2が一番よさそうと考えているのですが、 phpでmysqlを扱う場合、こういった考え方をするのは間違いでしょうか。 ページから画像をアップロードすることはありません。この場合もmysqlに画像を格納すべきですか。

    • ベストアンサー
    • PHP
  • 【VisualC++.NET】画像の表示に関して質問です

     『VisualC++.NET』を使用して画像処理プログラムを作成している高専生なのですが、表示方法に関して質問です。  今現在は『MFCアプリケーション』の『シングルドキュメント』で画像処理プログラムを作成し、画像を表示させていますが、このままでは、元画像を表示させたまま処理後の画像を表示させることができません。  そのため、処理後の画像を「ダイアログ」に表示させたいのですが、その方法やそれにつながる良い情報をご存知の方がいらっしゃるようでしたら、お教え願います。

  • FLASHプレイヤーがない場合には画像を表示しマッピングでリンクさせたい

    現在、フラッシュバナーを作成しております。 すこし複雑なのですが、FLASHプレイヤーがない場合には フラッシュがある場所の変わりにjpgやgif画像を表示し <object>のusemapでマッピングしリンクさせようと 思ったのですが、うまく出来ません。 似たようなことが出来ればよいので わかる方いましたら教えてください。 また、画像マッピングが無理な場合 複数の画像をフラッシュバナーが有る同じ場所に表示させ リンクさせるなどの方法ありますか? 良い

  • excelレコードに画像等を格納できますか

    EXCEL2010で作成したテーブルレコード中に、画像を格納することは可能でしょうか。 画像を格納して、アイコンだけを表示させたいです。宜しくお願い致します。

  • 画像を少しでも早く表示させるためには?

    こんにちは。HTMLについて質問いたします。 どなたかご存知の方いらっしゃいましたら、ぜひ回答をお願いいたします。  画像の表示速度について HTMLで画像を表示させるときにビルダーやドリームウィーバーなどのHTML自動生成ソフトを使用すると、勝手にwidth height 属性(画像の原寸)が付加されます。ですが自分で作成する場合には、当然ながら自分でサイズを調べて(というほど大げさなものではありませんが…)作成する必要があります。 そこで、質問なのですが、以前次の二つの話を聞いたことがありますので、お教えください。 (1)パーザー処理 HTMLのパーザー処理が余分な解析をすることなく、IEに対して素早く表示してくれるので原寸のサイズを書くこと自体は無意味。という話 (2)画像を早く表示させる 画像の原寸大のサイズをはじめから指定しておくことで早く画像が表示されるようになる。という話。 この二つの話は矛盾していますよね?? どちらも「早く表示させるため」にサイズ指定はいらないといい、一方では必要といい…。厳密に言うとどちらがより早く表示させることができるのでしょうか?疑問に思ったので、質問させていただきました。 あと、「パーサー処理」ということばも耳に慣れていなくわかりませんので、教えてくださると嬉しいです。

    • ベストアンサー
    • HTML
  • サーバ上で画像処理を行いたいのですが...

    Visual C++で作成したexeファイルをサーバ上で実行し, ユーザがWeb上でアップロードした画像に対して画像処理を施し, 表示するようにすることはできるのでしょうか? ご存知の方がいらっしゃいましたら教えていただけないでしょうか?

    • ベストアンサー
    • HTML
  • 画像処理ソフト・SPIDERについて

    個人的に画像処理に今興味があるのですが、SPIDERというサブルーチンライブラリが存在すると聞きました。既に20年ほど前の学会論文誌でも発表されているようでしたが、これに相当するもしくはこれ以上の画像処理アルゴリズムのサブルーチンライブラリというのが現在存在するのでしょうか?また、現在、SPIDERは世間でどのような扱いをされているのかご存知の方いらっしゃいましたら教えてください。

  • リンク画像のランダム表示について

    はじめまして。 諸先輩方、ご教授いただければと思います。 現在、JavaScriptでのリンク画像のランダム表示を、コーティングしてます。 配列に値をセットする方法は、存じてるのですが、対象のリンク画像が数十件あるため、全て記述するのはスマートではないと思い、とあるフォルダに対象のリンク画像を格納(1~50.jpg)し、取得したランダム値をもとに画像を表示させる所までは実装できました。 その際に画像へリンクを貼る段階で詰まってしまいました。 何か良い方法はないでしょうか? 私の考えでは配列にリンク情報を格納し、取得したランダム値をもとに取得するのかなと思ってますが、取得後のリンク設定方法がわかりません。 また、リンク画像を表示時、ロールオーバー処理も行いたく、外部jsファイルにロールオーバー処理を記述しました。 IEでは、問題なく表示されてますが、他のブラウザではロールオーバーが出来ません。 これは、リンク画像のランダム表示時にロールオーバー処理を追記する必要があるのでしょうか?

  • 画像がアップロードされません。

    HP作成ソフトを(Golive)使用し、HPを作成していますが、画像だけアップロードされません。(×の表示になってしまいます) 転送処理のときにも、エラーが出てしまうのですが、そのまま続けると、画像以外のものは、処理されています。 どうしたら、画像が表示されるのでしょうか? アドバイスお願いします。

専門家に質問してみよう