2017-03-02 13 views
0
  function rotateImageOnCanvas(path) { 
      fighterJets = []; 
       var img = new Image(); 
      img.src = path; 
      img.onload = function() { 
      this.width = 30; 
      this.height = 30; 
      var can = document.createElement('canvas'); 
      var ctx = can.getContext('2d'); 
      ctx.drawImage(this, 0, 0, this.width, this.height); 
      for(d=0;d<360;d++) {ctx.rotate(1);fighterJets.push(can.toDataURL());} 
     }; 
     } 

サーバーからイメージをロードしようとしています。一旦読み込まれると、イメージをキャンバス上で回転させ、データuriを配列に格納して、後でサーバーを呼び出すことなく、後で使用することができます。しかし私がデータuriでカーソルイメージを変更しようとすると、firefoxの "Invalid property value"が表示されます。カーソルイメージを変更するときにデータuriが見つかりません

parameter.style.cursor = 'url('+fighterJets[90]+') 15 15, auto' 

私はチェックして、データuriがパラメータのスタイル属性になっています(それは見逃せません)。だから、私は次のやり方として迷う。私はcanavasの控えめな控えめなものを持っていると私は間違って何かをしていると思うプラスあなたがカーソルの画像にデータのURIを割り当てることができます場合は、回避策はありません。助けが歓迎されます

+0

CPUの性能に関して、どのくらいの速さでbase64のデコードが行われますか?私はウェブ全体を見て、この簡単な答えを見つけることができません。私は本当に秒またはミリ秒の観点から2.5kbのbase64文字列をデコードするのがどれくらい速いか知る必要があります。誰でもどうぞ? –

答えて

0

多くの試行錯誤の後、私はcanavasサイズを画像と一致させていないので、無効なプロパティ値が無効になったことに気付きました。カーソルに表示されません。以下は作業コードです。

function rotateFighterJetOnCanvas(path,degrees) { 
     var img = new Image(); 
     img.src = path; 
     img.onload = function() { 
      var can = document.createElement('canvas'); 
      var ctx = can.getContext('2d'); 
      can.width =30;can.height =30; 
      ctx.translate(15, 15); 
      ctx.rotate(Math.radians(degrees)); 
      ctx.imageSmoothingEnabled = false; 
      ctx.drawImage(this, -15, -15, 30, 30); 
      ctx.rotate(-Math.radians(degrees)); 
      ctx.translate(-15, -15); 
      fighterJets.push(can.toDataURL("image/png",1.0)); 
     }; 
    } 
    Math.radians = function(degrees) { 
     return degrees * Math.PI/180; 
    }; 
関連する問題