我有很多尺寸过大(高度、宽度)的 jpeg 图像,它们都有不同的尺寸和不同的纵横比。
我从这样的数据库中显示它们:
<img src="<?php echo $img1; ?>" width="300" height="400">
我想要的是某种 php 函数来显示图像的裁剪版本,如下所示:
cropjpeg('$img1');
例如,如果图像是 600 W、700 H,则让 php 或 GD 从图像的左上角开始显示 300 W、400 H 左右的裁剪版本。
一些警告:
我不能用 CSS 来做
faux cropping
。如果您下载这个裁剪后的图像,它需要就是那个,较小的裁剪版本。我真的不想创建和保存新图像,所以我想我需要它来“即时”工作
我尝试了 imagecreatefromjpeg 和 imagejpeg,但看起来好像
header('Content-Type: image/jpeg')
;不是正确的答案,因为 html 页面上的内容不仅仅是这 1 张图片网站流量很大,所以要小心翼翼
这是迄今为止我发现的最好的,但它使用header('Content-Type: image/jpeg');
<?php
function cropjpeg($img, $x, $y, $width, $height,$grade=5)
{
// Create image instances
$src = imagecreatefromjpeg($img);
$dest = imagecreatetruecolor(400, 300);
// Copy
imagecopy($dest, $src, 0, 0, 20, 13, 400, 300);
// Output and free from memory
header('Content-Type: image/jpeg');
imagejpeg($dest);
imagedestroy($dest);
imagedestroy($src);
}
cropjpeg('images/bikini.jpg');
?>
有任何想法吗?