gpt4 book ai didi

PHP GD 编辑 Jpeg 无需重新压缩

转载 作者:行者123 更新时间:2023-12-04 18:22:32 26 4
gpt4 key购买 nike

假设我有一个 jpeg 文件,我想将一些像素设置为某种颜色。当我保存 jpeg 时,即使我将质量设置为 100,我也会失去颜色并且在新像素周围看到锯齿。我知道这是一种有损格式,但我不想重新压缩图片,只需设置几个像素。

// Create the GD resource
$img = imagecreatefromjpeg($filename);

// Set the first pixel to red
$color = imagecolorallocate($img, 255, 0, 0);
imagesetpixel($img, 0, 0, $color);

// Save the jpeg - is this where I'm wrong? I see the red pixel but it's the wrong color and is blurred.
imagejpeg($img, 'foo.jpg', 100);

// Lossless format works fine, red pixel is bright and accurate.
imagepng($img, 'foo.png');

所以也许GD不是去这里的路吗?我确实需要更改某些像素的颜色,并且它们在保存时需要准确。有没有办法在不依赖 GIF、PNG 或 JPEG2000 的情况下做到这一点?

最佳答案

正如您自己所说,JPEG 是一种有损格式。它实际上并不直接存储“像素”。如果您对图像进行更改,则必须重新压缩图像。没有办法解决这个问题。

您的红色像素是“错误颜色”和“模糊”的原因是因为 JPEG 压缩的工作原理。同样,它不存储像素。它强调亮度的变化,实际的颜色信息并不重要。

我不是很肯定,但您可能只能重新压缩受您的更改影响的几个 block 。您将无法使用任何标准函数来执行此操作,并且必须自己深入研究格式和压缩方案。

关于PHP GD 编辑 Jpeg 无需重新压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10370261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com