私はここにこの機能を持っています.....
function create_thumbnail($source,$destination, $thumb_width) {
$size = getimagesize($source);
$width = $size[0];
$height = $size[1];
$x = 0;
$y = 0;
if($width> $height) {
$x = ceil(($width - $height) / 2 );
$width = $height;
} elseif($height> $width) {
$y = ceil(($height - $width) / 2);
$height = $width;
}
$new_image = imagecreatetruecolor($thumb_width,$thumb_width)or die('Cannot Initialize new GD image stream');
$extension = get_image_extension($source);
if($extension=='jpg' || $extension=='jpeg')
$image = imagecreatefromjpeg($source);
if($extension=='gif')
$image = imagecreatefromgif($source);
if($extension=='png')
$image = imagecreatefrompng($source);
imagecopyresampled($new_image,$image,0,0,$x,$y,$thumb_width,$thumb_width,$width,$height);
if($extension=='jpg' || $extension=='jpeg')
imagejpeg($new_image,$destination);
if($extension=='gif')
imagegif($new_image,$destination);
if($extension=='png')
imagepng($new_image,$destination);
}
そして、これは画像を取得してサイズを変更しますが、期待どおりにサイズ変更されていないため、幅の広い画像、背の高い画像、または通常のサイズの画像を取得して、そのサイズに合うように切り取ると予想していました。サイズ変更は行いますが、ほとんどの画像が途切れます...私はこれに何日も苦労していて、画像を切り落とさずに画像のサイズを変更する方法を見つけることができないようです....私はいくつかの助けを見つけることができると思いますそしてそれは大いにありがたいです...だから、とても疲れています...
例として、私はこの画像を持っています...。
その画像に対してその関数を実行すると、これが返されます...
私が期待しているのは、同じ画像で、少し小さいことです。
コードのこの部分を変更しました...
imagecopyresampled($new_image,$image,0,0,0,0,$thumb_width,$thumb_width,$width,$height);
$x
と$y
を「0」と「0」に変更しました。これが出てきたものです...
私は探しているものに近づいていますが、完全な画像がそこにありません...それはまだ途切れています。