因此,我尝试使用重新采样的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);

10-07 21:22