gpt4 book ai didi

php - 在 PHP 中压缩 GIF 图像质量?

转载 作者:可可西里 更新时间:2023-11-01 13:42:11 25 4
gpt4 key购买 nike

如何在 PHP5 中压缩 GIF 图像文件?

我知道可以像这样处理 JPG imagejpeg($resource, $filename, $quality)根据 http://us.php.net/manual/en/function.imagejpeg.php

最佳答案

Gifs 肯定是有损的,你绝对可以压缩它们 - 非常显着。这是 PHP 代码:

$img = imagecreatefromstring(file_get_contents($_FILES["my_field"]["tmp_name"]));
imagetruecolortopalette($img, false, 16); // compress to 16 colors in gif palette (change 16 to anything between 1-256)
imagegif($img, $destination_filename); // $destination_filename is the location on your server where you want to save the compressed gif file

感谢 Mario,从这个链接获取上面的第一行:Convert JPG/GIF image to PNG in PHP?

许多人声称 gif 是无损的,这是不正确的。 Gif 肯定会丢失数据。丢失发生在保存点,而不是文件打开点,gif 丢失的行为与 jpeg 丢失不同,这是人们感到困惑的地方。一点道理也可以告诉我们,几乎所有不是位图的图像类型确实是有损的,否则我们还不如只使用位图。除了这种基本理解之外,图像压缩并不是所有这些专家“博主”所提倡的精确科学,程序员将能够很好地深入研究数据格式和压缩算法(双关语意),并自行研究。

本文http://searchcio-midmarket.techtarget.com/definition/lossless-and-lossy-compression断然地错误地说“图形交换文件 (GIF) 是 Web 上使用的一种提供无损压缩的图像格式。”这就像在说,“所有的矩形都是正方形”。有些矩形当然是正方形,但是,从逻辑上讲,这种说法是 100% 错误的。如果您有黑白图像,当然可以使用无损 gif 图像,但 gif 绝不是“无损”的。此外,以 100% 质量保存 jpeg 文件也是无损的,但可以创建比原始文件更大的文件。

作为一个非常简单的规则:对于高速传输,使用带有小调色板的 gif 图像来获得高对比度图像(比如白色 table 上的黑色笔记本图像);在对比度非常低的图像(如森林图像)上使用 50%-70% 之间的 jpeg;并在中等对比度或混合对比度图像(例如您和您 friend 的图像)上使用具有大调色板的 gif 或质量为 63%-85% 的 jpeg。

LZW 压缩(对于 Tiff 文件)是惊人的,但请记住,压缩图像并最终得到一个翻译字典是可能的,除了压缩数据本身之外,它还比原始图像大。图像压缩非常复杂,没有一种适用于所有情况,因此在讨论图像压缩时要避免笼统的陈述。没有“正确”的选择,只有更好的选择。

关于php - 在 PHP 中压缩 GIF 图像质量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3708947/

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