1 に答える
はい、URL API を介して任意のアフィン変換を行うことができますが、イベントの順序を知っている必要があり、クロッピングとパディングを別々のコマンドに分割する必要があります。
トリミングはサイズ変更の前に行われるため、ビューポートの寸法を把握し、それらを 2 つの座標セットに分割する必要があります。
1) クロップ値は、ソース イメージ座標の x1、y1、x2、y2 です。画像サイズのビューポート座標がわからない場合は、cropxunits=100
とを使用して、それぞれ幅/高さの x1、y1、x2、y2 パーセンテージを作成できます。とにcropyunits=100
任意の値を使用して、計算を簡単にすることもできます。cropxunits
cropyunits
負のクロップ値は左上ではなく右下に相対的であるため、負の絶対値 (または右端の値の場合は超過分) を後でパディングする変数にコピーした後、ゼロまたは幅/高さ/に設定します。 cropxunits/cropyunits。
2) 必要に応じてパディングを追加しますmargin=left, top, right, bottom
。単位はソース ピクセルではなく表示ピクセルであるため、これらの値はスケーリングされません。
width=x&height=y&mode=max
3) スケール -適切な表示サイズを取得するために適用する場所です。オフのままにすると、1:1 ズームが表示されますが、これは望ましい場合と望ましくない場合があります。ここでは、キャンバスではなく、表示ピクセル単位の画像の幅/高さを指定する必要がありますx
。y
詳細については、完全なコマンド リファレンスを参照してください。
これは間違いなくプラグインとして実行できますが、最初に JavaScript を実装してから、プラグイン形式でサーバーにラッピングを配置する必要があるかどうかを確認することをお勧めします。いずれにせよ、私はこの質問を数回受けており、MIT ライセンスのコード サンプルはコミュニティにとって非常に役立つでしょう。