元の画像サイズのフロントエンドを取得する方法

序文

  我々は通常より少ない映像ストリームに注力する可能性が高い、ISMあります。

  ブラウザの負荷は、画像はユーザーに、コンテナの内部に表示されます。

  しばらくの間、ウェブサーフィン、私は完全な記事の少しを見つけた、またはあまりにも多くのスプレーは私の目を盲目に

需要

  (これは別のケースである代わりに、画像の比率を設定するCSSで表示)私は、元の画像の大きさを知りたいです

  私は、画像の元のサイズを保存する必要があります。私たちは、元の画像サイズと接触するときは、ローカルの画像をアップロードする必要があります

テキスト

  まず、画像の例を作成するために)(新しいイメージを理解し
  Image、ネイティブコンストラクタブラウザが返されHTMLImageElementたオブジェクトは、そのインスタンスの<img>インスタンスラベルを。

VaRのMYIMAGE =新しい画像(100、100); 
myImage.src = 'demo.jpg'; 
document.body.appendChild(MYIMAGE)。

 このコードは、体内での新しい(より一般的に使用される)と同等に、あります

<img width="100" height="100" src="demo.jpg">

是时候展示他真正的技术了

 

 Imageプロパティ(私は本当に怠惰な、MDNの下から直接スクリーンショット)

 

 

 

 

 

   プロパティの多くがあり、1つのデモンストレーションを使用することは不可能です。

   トピックに戻り、主に以下の属性で、元の画像のサイズを取得

  1. 高さ
  2. コンプリート
  3. ONERROR
  4. onloadイベント
  5. SRC
  6. crossorign

  彼らの知識を適用するために、効果と話すコード

  

//映像ストリームと、元の画像のサイズを取得し
    (ヴァル){handleChangeUIImg 
      VAR =このこと
      VAR = imgReady(関数(){ 
      ] [= VARリスト、INTERVALID = NULL、
      //キュー実行する
      {(ダニ=機能)
        ため( I = 0 VAR; I <List.length; I ++ ){
        ?一覧[I] .END list.splice(i-- ,. 1):リスト[I](); 
        }; 
        List.length && STOP()は;! 
      }、
      //すべてのキュータイマーを停止
      STOP =関数() { 
        てclearInterval(INTERVALID); 
        INTERVALID = NULL;
       }; 
      復帰機能(URL、READY、負荷、エラー){ 
        VAR onReady、幅、高さ、newWidth、newHeight、
        IMG =新しい新しいイメージ(); 
        img.crossOrigin = ''     // !写真クロスドメインを許可され、それは非常に重要です
        img.src = URL;
         //画像がキャッシュされている場合、キャッシュされたデータを直接返す
        IF(img.complete){ 
          ready.call(IMG);
          負荷&& load.call(IMG)。
          リターン; 
        }。= img.width。
        高さ= img.height。
        //加载错误后的事件
        img.onerror =関数(){ 
          エラー&& error.call(IMG)。
          onready.end =はtrue。
          IMG = img.onload = img.onerror = NULL;
        }。
        //图片尺寸就绪
        onready =関数(){ 
          newWidth = img.width。
          newHeight = img.height。
          (newWidthもし!== 幅|| newHeight!==高|| newWidth * newHeight > 1024){ 
          //画像は他の領域検出器を使用することができるロードされている場合
            ready.call(IMG); 
            onready.end = TRUEに; 
          }; 
          !IF(newWidth == 0 && newHeight ==! 0){ 
            that.getImageColor(IMG)
          } 
        }; 
        )(onready; 
        //完全にロードされたイベント
        img.onload =関数(){ 
          //のonload onready高速タイマ範囲の時間差よりもできる
          //ここチェックとonready前に実行されるよう
          onready.end onready &&();! 
          負荷&& load.call(IMG); 
          //のIE GIFアニメーションループは、オンロード実行ブにONLOAD 
          IMG = img.onload = img.onerror = NULL; 
        } ;
        //実行キューを定期的に添加し 
        た場合(!onready.end){
          、list.push(onReady)
          //タイマーのみ性能損失ブラウザを低減させるたびに
          (INTERVALID ===ヌル)IF = INTERVALIDのsetInterval(ダニ、40); 
        }; 
      }; 
    })();

 

ファニータイプの概要

  プロ試験の例としては、元のサイズの画像を取得することです

  フォーマットは、他の削除されたデータがあるので、ない全く正しいことがあります。

  整理する時間を持っています

 

おすすめ

転載: www.cnblogs.com/ifannie/p/11848031.html