Gif 肯定是有损的,而且你绝对可以压缩它们——相当显着。这是 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
感谢马里奥,从这个链接上面的第一行:在 PHP 中将 JPG/GIF 图像转换为 PNG? https://stackoverflow.com/questions/8550015/convert-jpg-gif-image-to-png-in-php
许多人声称 gif 是无损的,这是不正确的。 GIF 肯定会丢失数据。丢失发生在保存时,而不是打开文件时,并且 gif 丢失与 jpeg 丢失的行为不同,这就是人们感到困惑的地方。一点点道理也可以告诉我们,几乎所有不是位图的图像类型确实是有损的,否则我们最好只使用位图。除了基本的理解之外,图像压缩并不是所有这些专家“博主”所提倡的精确科学,程序员最好自己深入研究数据格式和压缩算法(双关语)。
本文http://searchcio-midmarket.techtarget.com/definition/lossless-and-lossy-compression http://searchcio-midmarket.techtarget.com/definition/lossless-and-lossy-compression平淡地和falsely声明“图形交换文件 (GIF) 是一种在 Web 上使用的提供无损压缩的图像格式”。这就像说“所有矩形都是正方形”。有些矩形肯定是正方形,但从逻辑上来说,这种说法是 100% 错误的。如果您有黑白图像,当然可以使用无损 gif 图像,但 gif 绝不是“无损”。此外,以 100% 质量保存 jpeg 文件也是无损的,但可能会创建比原始文件更大的文件。
作为一个非常简单的规则:为了高速传输,请使用带有小调色板的 gif 来获取高对比度图像(例如白色桌子上的黑色笔记本的图像);在对比度非常低的图像(例如森林图像)上使用 50%-70% 之间的 jpeg;并在中等对比度或混合对比度图像(例如您和您朋友的图像)上使用大调色板的 gif 或质量为 63%-85% 的 jpeg。
LZW 压缩(对于 Tiff 文件)是惊人的,但请记住,压缩图像并最终得到一个翻译字典,除了压缩数据本身之外,它还比原始图像更大。图像压缩非常复杂,没有一种方法适合所有情况,因此在讨论图像压缩时避免笼统的陈述。没有“正确”的选择,只有更好的选择。