私はWave Frameworkの開発者であり、最近、オンデマンドの画像ローダーに丸みを帯びたコーナー (まだリリースされていないコミット) を実装しました。これにより、デザイナーは画像を切り取り、サイズ変更したり、外出先でフィルターを追加したりして画像を取得できます。
この例は、http://www.waher.net/w/resources/images/400x200&nw40&se190&ne10&aa4&liisu.jpgで見ることができます。
元の投稿に示されている例では、次のように機能します。
- 元の画像を取得します ( http://www.waher.net/w/resources/images/liisu.jpg )。
- 画像のサイズを 400px または 200px に変更し、新しいキャンバスから除外された部分を切り取ります。
- 画像のサイズを 4 倍にします (URL の「aa4」パラメーター)。
- imagearc() および imagefilltoborder() 関数を使用して、丸みを帯びた角 (北西 40px、南東 190px、および北東 10px を表す「nw40」、「se190」、および「ne10」パラメーター) をサイズ変更された画像に追加します。
- 画像のサイズを 4 に減らすと、最終的に角が丸い 400x200 ピクセルの画像になります。
これは機能しますが、パフォーマンスの問題を引き起こす可能性があります。アンチエイリアシングを 8 まで許可しているため、1600x800 の画像が 12800x6400 にサイズ変更される可能性があります。これは絶対に危険であり、メモリの問題によりリクエストが殺される可能性があります。
この状況でアンチエイリアシングを実装するより良い方法はありますか?
編集: また、PHP ではデフォルトで有効になっておらず、複数のホスティング サービスで利用できるため、この場合 ImageMagick はオプションではないことに注意してください。