假设我有一个 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 的情况下做到这一点?