我有一堆产品预览图片,但它们不是相同尺寸。
所以我想知道,是否有可能在旅途中裁剪图片而不保存?
这两个链接应该显示我的意思:
http://xn--nstvedhandel-6cb.dk/alpha_1/?side=vis_annonce&id=12
http://xn--nstvedhandel-6cb.dk/alpha_1/?side=vis_annonce&id=13
答案 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)
答案 2 :(得分:1)
这当然是可能的,但你想做的事情可能不是一个好主意 - 这就是原因。
如果您裁剪图像,保存它,您(或者说您的服务器)永远不需要再次执行此操作。这不是一个轻松的操作。
但是,如果你继续进行裁剪,你的服务器必须每次都做这项工作 - 这是非常低效的。
作为最糟糕的情况,为什么不自动将它们裁剪一次到您想要的尺寸(而不是手动完成)并简单地保存这些结果?
最后,鉴于它是商店,不会手动裁剪它们,为您的产品提供最佳图像 - 从而最好的机会出售它们?