2010/04/20(火)Javascript での画像情報取得

久々かと思ったら、また Javascript の話。
    function check_image(uri) {
    imgobj = new Image() ;
    imgobj.src = uri ;
    var iwidth  = imgobj.width ;
    var iheight = imgobj.height ;
    var sparam  = 'width=' + iwidth + ',height=' + iheight + ',toolbar=0,menubar=0,scrollbars=0' ;
    subimg = open(uri, "imgdisp", sparam) ;
  }
上記のように記述したら、子ウィンドウがパラメータ uri で指定する画像のサイズに合わせて開く計算だったのだが、1回目に所定より小さいサイズの子ウィンドウが開き、そのウィンドウを閉じた上でもう一度実行させると、やりたいことが出来るという現象。

uri に指定するのは、画像のURLを指定するようにしていますが、これがフォームでアップロードさせた画像ファイルなせいか、適切な拡張子をつけないせいか、どうにも上手くいきません。

結局、CGI 側にて、アップロードした画像ファイルのサイズを抽出し、上記の Javascript にそのサイズを指定するようにすることで回避しました。こんな感じ。
  function check_image(uri,iwidth,iheight) {
    var sparam  = 'width=' + iwidth + ',height=' + iheight + ',toolbar=0,menubar=0,scrollbars=0' ;
    subimg = open(uri, "imgdisp", sparam) ;
  }