我正在进行一个项目,在这个项目中,我使用GD库在PHP中编辑jpg的像素。它的非常关键,也是我的项目的关键,的输出保留了我设置的像素值(咳嗽-隐写-咳嗽)。
这是我第一次尝试在PHP中进行图像操作。我以前在Java实现方面没有任何问题,所以在进一步研究GD的jpeg压缩质量之前,我是愚蠢的。
结果是,经过我所有的努力,我的代码并没有按照它应有的方式工作。我很确定这不是我的代码(测试了编辑过的图像资源上的编码和解码功能,它们都起作用了)。
我的问题是:
imagejpeg()的压缩,我能说的对吗?发布于 2011-07-03 07:02:12
如果您逐个像素地执行隐写术文件格式,则不太适合于隐写。
JPEG使用一种图像压缩--即使具有最大的质量--这将破坏每个像素上的位级信息。jpeg类型的压缩(有耗压缩)是为人眼/大脑保留图像,而不是在文件中的图像位。
您需要使用能够保留像素的图像格式--就像您已经写好的那样。这种格式更有可能是BMP和RLE压缩,或TIFF图像格式与ZIP或RLE压缩。这叫无损数据压缩。
发布于 2011-07-03 06:01:13
默认情况下,imagejpeg输出的图像质量为75,尝试将其设置为100,以获得完全质量的图像。
bool imagejpeg ( resource $image [, string $filename [, int $quality ]] )有关更多细节,请查看手册。
还可以尝试使用图像重放。(我认为您可能在代码中的某个地方使用了imagecopyresized。使用imagecopyresampled代替它。)
编辑
那么,我认为您应该尝试ImageMagick(或GD2)。它的质量比GD好。检查这
发布于 2013-10-10 14:37:26
使用imagepng()而不是imagejpeg()函数,并将压缩设置为0:
bool imagepng ( resource $image [, string $filename [, int $quality [, int $filters ]]] )
请参阅:http://php.net/manual/en/function.imagepng.php
https://stackoverflow.com/questions/6561345
复制相似问题