PHP-PHP对图片的压缩和加水印的冲突?

发布于 2016-12-22 12:48:00 字数 179 浏览 1345 评论 2

最近公司软件的提交的图片都很大,
影响访问的速度
现在想对图片进行无损压缩
而且要加上水印
而且大于800宽度的图片要等比例缩放后在压缩
现在综合起来就是:
图片大于800的等比例缩放,
图片体积大于50kb的要无损压缩加水印

补充:寻求综合解决方案????

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

灵芸 2017-10-17 16:14:00

无损压缩是用png格式吧,加水印是看你是用啥语言了,用php的GD库很简单啊。

$image = imagecreatefromstring(file_get_contents($path));

$w = imagesx($image);
$h = imagesy($image);

// Load the watermark image
$watermark = imagecreatefrompng('watermark.png');
$ww = imagesx($watermark);
$wh = imagesy($watermark);

// Merge watermark upon the original image
imagecopy($image, $watermark, $w-$ww, $h-$wh, 0, 0, $ww, $wh)

// Send the image
header('Content-type: image/png');
imagepng($image);

归属感 2017-02-08 21:27:31

用Imagick吧,GD这玩意做图片压缩效率很太低了。

function resize($image, $width, $height, $crop) {
$imagick = new Imagick();
$imagick->readImageBlob($image);
$w = $imagick->getImageWidth();
$h = $imagick->getImageHeight();
if ($w > $width || $h > $height) {
if ($crop) {
$imagick->cropThumbnailImage($width, $height);
} else {
$imagick->resizeImage($width, $height, Imagick::FILTER_CATROM, 1, true);
}
}

$imagick->setImageFormat(‘JPEG’);
$imagick->setImageCompression(Imagick::COMPRESSION_JPEG);
$a = $imagick->getImageCompressionQuality() * 0.75;
if ($a == 0) {
$a = 75;
}

$imagick->setImageCompressionQuality($a);
$imagick->stripImage();
$blob = $imagick->getImageBlob();
$imagick->clear();
$imagick->destroy();
return $blob;
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文