Imagecrop而不保存图像

时间:2012-08-31 08:54:36

标签: php crop

我有一堆产品预览图片,但它们不是相同尺寸

所以我想知道,是否有可能在旅途中裁剪图片而不保存?

这两个链接应该显示我的意思:

http://xn--nstvedhandel-6cb.dk/alpha_1/?side=vis_annonce&id=12

http://xn--nstvedhandel-6cb.dk/alpha_1/?side=vis_annonce&id=13

3 个答案:

答案 0 :(得分:5)

是的,我可以这样做:

//Your Image
$imgSrc = "image.jpg";
list($width, $height) = getimagesize($imgSrc);
$myImage = imagecreatefromjpeg($imgSrc);

// calculating the part of the image thumbnail
if ($width > $height)
{
    $y = 0;
    $x = ($width - $height) / 2;
    $smallestSide = $height;
 } 
 else
 {
    $x = 0;
    $y = ($height - $width) / 2;
    $smallestSide = $width;
 }

 // copying the part into thumbnail
 $thumbSize = 100;
 $thumb = imagecreatetruecolor($thumbSize, $thumbSize);
 imagecopyresampled($thumb, $myImage, 0, 0, $x, $y, $thumbSize, $thumbSize, $smallestSide, $smallestSide);

 //final output
 header('Content-type: image/jpeg');
 imagejpeg($thumb);

这不是一个非常轻微的操作,就像其他人一样,我也建议您在创建缩略图后将其保存到文件系统中。

您可能需要查看PHP's GD library

答案 1 :(得分:2)

您可能想尝试这个简单的脚本:https://github.com/wes/phpimageresize

它还允许缓存,这应该有助于解决性能问题。

但我也更喜欢调整图像大小并将其保存为缩略图。

答案 2 :(得分:1)

这当然是可能的,但你想做的事情可能不是一个好主意 - 这就是原因。

如果您裁剪图像,保存它,您(或者说您的服务器)永远不需要再次执行此操作。这不是一个轻松的操作。

但是,如果你继续进行裁剪,你的服务器必须每次都做这项工作 - 这是非常低效的。

作为最糟糕的情况,为什么不自动将它们裁剪一次到您想要的尺寸(而不是手动完成)并简单地保存这些结果?

最后,鉴于它是商店,不会手动裁剪它们,为您的产品提供最佳图像 - 从而最好的机会出售它们?