2010-09-14 140 views

回答

6

JPG是一种有损压缩做这样imagejpeg($资源,$文件名,$质量) 。这意味着您可以使用“质量参数”来调整尺寸/质量比。

GIF是无损压缩,您无法通过调整质量得到更好的压缩。

要创建一个GIF图像使用imagegif(...)
http://us.php.net/manual/en/function.imagegif.php

+0

我知道如何创建gif图像,但我不知道你无法压缩它。谢谢。 – EMC 2010-09-14 12:51:19

+0

gif格式压缩数据,但不能通过调整质量使其变小。如果你喜欢我的回答,请用绿色的勾号接受。 – qbeuek 2010-09-14 13:20:10

5

照片与图像肯定是有损耗的,你绝对可以压缩他们 - 相当显著。这里是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 

由于马里奥,从这个链接,上面第一行:Convert JPG/GIF image to PNG in PHP?

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

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

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

LZW压缩(对于Tiff文件)是惊人的,但请记住可以压缩图像,并最终生成一个除压缩数据本身之外还大于原始图像的翻译字典。图像压缩非常复杂,没有一个尺寸适合所有人,因此在讨论图像压缩时要避免一揽子声明。没有像“正确”选项那样的东西,只有更好的选择。