2

私は、IE のみの DXImageTransform アドオンに依存する JavaScript 画像サイズ変更機能に取り組んでいます。

最新のブラウザーにも対応したいと考えて、canvas を試してみましたが、かなり良い結果が得られました。

ただし、サイズ変更機能で次のような問題に直面しています。

関数 Resize(oObj, flMultiplier)
{       
  var canvas = document.getElementById('canvas');
  var canvasContext = canvas.getContext('2d');

  oObj.style.visibility = 'hidden';

  canvasContext.clearRect(0,0,canvas.width,canvas.height); // キャンバスをクリア
  canvasContext.fillStyle = 'rgba(0,0,0,0.4)';
  canvasContext.scale(flMultiplier,flMultiplier);
  canvasContext.drawImage(oObj, 0, 0);
}

画像がキャンバス アイテムよりも大きくなると、画像の一部しか表示されなくなります。これは問題です。

実行時にキャンバスのサイズを微調整しようとしましたが、サイズ変更された画像の表示に影響する場合。

だから私は大きなキャンバス要素を宣言することになりました.これはかなり問題ありません.

したがって、私の問題を解決するには2つの方法があると思います。

  1. 大きなキャンバス要素をオーバーフロー スキームから除外してみてください
  2. サイズ変更時にキャンバス要素のサイズを更新してみてください(何か見落としている可能性があります)
4

1 に答える 1

3

私はそれを自分で試したことはありませんが、おそらく Dom から canvas 要素を作成できますdocument.createElement。表示を乱すことなく、任意のサイズにすることができます。

今、私は文脈を欠いているので(他の質問の中でも、幅と高さの属性を使用する代わりに、なぜこのように画像のサイズを変更するのですか)、ポイントを逃しているかもしれません.

于 2008-12-23T23:34:59.993 に答える