2

サムネイルスクリプトを使用していますが、imagecopyresampledを見つけて、画像の一部をコピーし、そこから正方形のサムネイルを作成することしかできませんでした。

ある特定のサムネイルについては、この新しいレイアウトを使用したいので、幅を高さよりも大きくしたいと思います。

ここに画像の説明を入力してください

これが私が今持っているものです。これは、最新のアートワークセクションには幅が小さすぎます。

ここに画像の説明を入力してください

幅を追加することでこれを達成できると思いましたimagecopyresampled($tmp_img, $img, 0, 0, 0, 0, $new_width+100, $new_height, $width, $height);...画像を引き伸ばすだけで、サムネイルフレームを維持しました:

ここに画像の説明を入力してください

これが私が目指していることです...フレームは幅方向に大きくなっているので、より多くの画像をフレームに収めます。

ここに画像の説明を入力してください

ありがとうございました!

4

1 に答える 1

1

imagecopyresampled の PHP ドキュメントによると:

bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

トリミングやスマートな配置を行わずにあるアスペクト比から別のアスペクト比に移行すると、常に画像が引き伸ばされますが、これは避けられません。ストレッチをあまり気にしない場合 (または、縦横比を変更しない場合、質問はそれについて明確ではありません)、ここで私が行う方法に似ています。

function resize($width,$height,$data) {
       $new_image = imagecreatetruecolor($width, $height);
       imagecopyresampled($new_image, $data, 0, 0, 0, 0, $width, $height,      imagesx($data), imagesy($data));
       $data = $new_image;
    }
于 2013-02-11T22:05:43.947 に答える