因此,我尝试使用重新采样的imagecopy裁剪照片的一部分,以免我的用户上传的照片超出我的网站的预期范围。不幸的是,我还没有弄清楚为什么imagecopyresampled基本上表现出来,就好像我只是使用CSS来调整图像大小一样。根据我的理解,它仅应根据我提供的坐标将图像的一部分复制为0,0到325X300 px jpg。
!:example
最上面的图像是我正在使用imagecopyresampled生成的图像。我的代码如下。只是想了解我在这里做错了什么,因为显然我的GD副本没有imagecrop,否则我可能会使用它。
<html>
<style>
.sample{
width: 325;
height: 300;
}
</style>
<body>
<?php
$image = imagecreatefromjpeg('Image6.jpg');
$filename = 'Thumbnail_Image6.jpeg';
$width = 325;
$height = 300;
$oldwidth = imagesx($image);
$oldheight = imagesy($image);
if( $oldwidth > 325 || $oldheight > 300){
$thumb = ImageCreateTrueColor( 325, 300);
imagecopyresampled($thumb, $image, 0, 0, 0, 0, 325, 300, $oldwidth, $oldheight);
imagejpeg($thumb, $filename, 100);
echo "<img src='".$filename."'><br>";
echo "<img class='sample' src='Image6.jpg'><br>";
}
?>
</body>
</html>
最佳答案
如果您要裁剪图像,则无需使用完整图像尺寸。
imagecopyresampled($thumb, $image, 0, 0, 0, 0, 325, 300, 325, 300);