PHP GD 方法 imagecopy 比原始图像更大的图像文件
Posted
技术标签:
【中文标题】PHP GD 方法 imagecopy 比原始图像更大的图像文件【英文标题】:PHP GD method imagecopy larger the image filesize than the origin image 【发布时间】:2016-11-20 07:56:29 【问题描述】:在我的工作中,我使用 php GD lib 函数 imagecopy 给图像添加水印,但是发现生成的图像比原来的图像大,有没有办法优化文件大小,除了 jpegoptim 来修剪 exif 元数据。
github上的测试代码:https://github.com/zeanwork/Watermark,你可以用exmaple测试,to.jpg文件比from.jpg和watermark.png文件大太多了
文件媒体信息
但我不希望带水印的图像比原始文件大很多,在我的测试中,to.jpg 文件大小有时是原始图像的 4 倍
任何减少文件大小的最佳方法?
【问题讨论】:
inagejpeg 调用的质量是什么(第 3 个参数) 我添加了一张图片 mediainfo 【参考方案1】:这是图像质量,但我认为不可能有相同的 JPEG 图像大小,即使您只是将一张 jpg 图像复制到另一张。 Watermark
确实以 100 质量保存图像,这是最大的。我猜你的原始图像没有那么大的质量,因此文件大小不同。
看看Watermark class的204行:
# Save image
$functionTarget($this->imgSource, $imgTarget, 100);
您必须对其进行硬编码才能更改质量。
【讨论】:
是的,谢谢,通过命令获取原图质量:identify -format '%Q'以上是关于PHP GD 方法 imagecopy 比原始图像更大的图像文件的主要内容,如果未能解决你的问题,请参考以下文章
在新的、更大的图像中居中图像资源 (PHP/imagecopy)