サムネイルを作成し、同時に画像のサイズを変更しようとしているので、より明確にするために、トリミングしようとしている画像を次に示します。
そして、その赤い部分を切り取りたいと思います。
今私の問題は、トリミングする前にhtmlで画像のサイズを変更しているため、データをphpに送信すると、実際にそうy = 100
である可能性がある場合y = 200
のように、値を計算する方法を見つける必要があることです。
を使用してimagecopyresampled
いますが、このコマンドよりも優れたものがあるのではないでしょうか?
また、私の最も近い解決策はこれでした:
imagecopyresampled(
$thumb, //Destination image link resource.
$src, //Source image link resource.
0, //x-coordinate of destination point.
0, //y-coordinate of destination point.
0, //x-coordinate of source point.
0, //y-coordinate of source point.
120, //Destination width.
160, //Destination height.
$image_width/2, //Source width.
$image_height/2 //Source height.
);
この場合、左隅が切り取られますが、サイズは私の赤いボックスと同じではありません。だから私は正しいことをする必要があると思いますsource width
、source height
そして他のすべては完全に収まるはずです、とにかく私はここで何か意味があることを願っています:)
編集申し訳ありませんが、言及するのを忘れていまし$image_width
た$image_height
。元の画像サイズです
EDIT 2より明確にするために、これは私がこのコードでサイズを変更したときに得られるものです
$dimensions = getimagesize('testas.jpg');
$img = imagecreatetruecolor(120, 160);
$src = imagecreatefromjpeg('testas.jpg');
imagecopyresampled($img, $src, 0, 0, 0, 0, 120, 160, $dimensions[0]/2, $dimensions[1]/2);
imagejpeg($img, 'test.jpg');
サイズ変更された画像サイズは正しいですが、できる限り正しく見えません。