5

我有一堆产品预览图像,但它们的尺寸不同

所以我想知道,是否可以在不保存的情况下随时随地裁剪图像?

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

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

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

4

3 回答 3

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 的 GD 库

于 2012-08-31T09:05:39.660 回答
2

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

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

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

于 2012-08-31T09:04:22.127 回答
1

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

如果您裁剪图像并保存它,您(或者更确切地说是您的服务器)再也不需要这样做了。这不是一个轻松的操作。

但是,如果您不断地进行裁剪,您的服务器将不得不每次都完成这项工作——这是非常低效的。

作为最坏的情况,为什么不自动将它们裁剪为您想要的尺寸(而不是手动进行)并简​​单地保存这些结果?

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

于 2012-08-31T08:58:36.200 回答