.NET 用のwww.imageresizing.netツールを使用して、その場でギャラリーとサムネイル画像を作成しています。このコンポーネントの優れた点は、URL を変更するだけで画像を再トリミングおよびサイズ変更できることです。
今、私が持っているのは、必要なアスペクト比 (9:5) のギャラリー画像で、以下で正しくレンダリングされています。
upload/289.jpg?crop=22,30,562,330&width=540&height=300
この上の定義されたクロップ座標22,30,562,330 (X1,Y1,X2,Y2)
は、下から 22 ピクセル、下に 30 ピクセル、横に 562 ピクセル、下から 330 ピクセルの領域を選択していることに気付くでしょう。したがって、基本的には、より大きな画像の中央にある 540x300px の大まかなトリミング領域 (640x427 ですが、これは質問とは関係ありません)。
前述のように、これは適切に表示され、正しいアスペクト比で表示されます。次に、次を使用して URL をサムネイル バージョンに変更できます。
upload/289.jpg?crop=22,30,562,330&width=120&height=67
縦横比を維持するための正しい幅と高さは120x67 (正確には 120.6x67 ピクセル)であり、画像をスケーリングしているだけなので、クロップ座標は明らかに同じままであることがわかりました。これをもう一度見ると、物事は素晴らしく見えます。
(画像の境界が分かるように灰色の背景に配置しました)
ただし、私の問題は、どちらかの側から 10 ピクセルをノックして、幅を100
洋ナシの形に設定したい場合です。私が使用している画像ギャラリーでは、4 つの画像に収まる必要があるため、これを行いたいと考えています。
これを指定すると、画像が表示されますが、上部と下部に 2 つの小さなバーがある白いレターボックスに表示されます。これは、左側のトリミングに 10 ピクセルを追加していないか、トリミングから 10 ピクセルをまだ減算していないためです。権利:
upload/289.jpg?crop=22,30,562,330&width=100&height=67
だから明らかに私は自分の作物を調整し、少しトリミングする必要がありX1 (22)
ますX2 (562)
。ただし、 120 から 100 への幅の低下を補正する必要があると思われる32
に設定した場合でも、これはレターボックスを保持するため、それほど簡単ではないようです。552
両側から必要な 10 ピクセルをスケーリングまたは何か (?) の前に適用する必要があると思いますが、このアルゴリズムに取り組む方法がわかりません。ここで本当に迷っています!!
わかる?ここで画像操作/数学のウィザードが私を助けてくれますか?