Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何仅压缩那些没有';仅仅使用PHP还没有被压缩吗?_Php_Image_Optimization - Fatal编程技术网

如何仅压缩那些没有';仅仅使用PHP还没有被压缩吗?

如何仅压缩那些没有';仅仅使用PHP还没有被压缩吗?,php,image,optimization,Php,Image,Optimization,我目前正在努力加快我们开发的网站。我现在正在研究的部分是优化图像,使它们尽可能小(文件大小,而不是尺寸),而不会丢失质量 我们的客户可以通过我们的定制CMS将自己的图像上传到网站上,但图像根本没有被压缩或优化。我的上司解释说,这是因为客户可以上传他们自己的图像,这些图像可以通过Photoshop或类似的工具预先优化。如果您优化已经优化的图像,质量会变得更差。。。对吧? 我们正试图找到一个解决方案,不需要我们安装模块或任何东西。我们已经使用了imagejpeg()、imagepng()和image

我目前正在努力加快我们开发的网站。我现在正在研究的部分是优化图像,使它们尽可能小(文件大小,而不是尺寸),而不会丢失质量

我们的客户可以通过我们的定制CMS将自己的图像上传到网站上,但图像根本没有被压缩或优化。我的上司解释说,这是因为客户可以上传他们自己的图像,这些图像可以通过Photoshop或类似的工具预先优化。如果您优化已经优化的图像,质量会变得更差。。。对吧?

我们正试图找到一个解决方案,不需要我们安装模块或任何东西。我们已经使用了
imagejpeg()
imagepng()
imagegif()
,但是由于前面解释的原因,我们没有使用
$quality
参数。我见过一些代码片段,但它们都使用
imagejpg()
等等

也就是说,是否有一种可靠的方法可以在不存在优化之前优化过的图像的风险的情况下优化图像?或者使用
imagejpeg()
imagepng()
imagegif()
,即使这意味着优化已经优化的图像,也不会有任何问题吗


谢谢大家!

从你的标题开始,我将假设

因此,假设您的客户上传了800x600的普通jpg。 客户jpg是272kb,因为它有完整的细节和一切

您需要将文件大小的treshold设置为可接受的维度

比如:

if $dimensions->equals(800,600) and file_type($image) =='jpg' and file_size($image) > 68kb 
then schedule_for_compression($image)
通过这种方式,您可以为可接受的文件大小上限设置参数。如果尺寸匹配,并且文件大小更大,那么它就没有得到优化


但是,在不知道关于优化的更多细节的情况下,这是我能想到的唯一一件事。

从你的标题开始,我将假设压缩

因此,假设您的客户上传了800x600的普通jpg。 客户jpg是272kb,因为它有完整的细节和一切

您需要将文件大小的treshold设置为可接受的维度

比如:

if $dimensions->equals(800,600) and file_type($image) =='jpg' and file_size($image) > 68kb 
then schedule_for_compression($image)
通过这种方式,您可以为可接受的文件大小上限设置参数。如果尺寸匹配,并且文件大小更大,那么它就没有得到优化

但是,在不了解更多关于优化的详细信息的情况下,我只能想到这一点。

“如果您优化已经优化的图像,质量会变得更差。” 如果您使用的方法没有松动,则不会

我不知道php中直接使用什么方法,但如果您在linux服务器上,您可以使用jpegtran或jpegoptim(带--strip all)来表示jpeg,使用OptiPNG或PNGOUT来表示png

“如果您优化已经优化的图像,质量会变得更差。” 如果您使用的方法没有松动,则不会


我不知道php中直接使用什么方法,但如果您在linux服务器上,您可以使用jpegtran或jpegoptim(带--strip all)来表示jpeg,使用OptiPNG或PNGOUT来表示png

如果要压缩的图像数量较少,您可能会发现外部服务,例如:可能会有所帮助

我已经使用他们的在线工具手动减少了JPG和PNG文件的文件大小,但他们确实为每月前500张图像提供了免费的API服务


抱歉,如果这是一个评论,而不是一个回答,我对stackoverflow还比较陌生,还没有得到足够的分数,但我觉得这可能是一个方便的替代解决方案。

如果您使用少量图像进行压缩,您可能会找到一个外部服务,例如:可以提供帮助

我已经使用他们的在线工具手动减少了JPG和PNG文件的文件大小,但他们确实为每月前500张图像提供了免费的API服务


抱歉,如果这是一个评论,而不是一个回答,我对stackoverflow还比较陌生,还没有得到足够的分数,但我觉得这可能是一个方便的替代解决方案。

使用相同或更高的质量设置保存JPEG不会导致明显的质量损失。只需使用所需的质量设置重新保存即可。如果文件最终变大,只需丢弃它并保留原始文件。在优化之前,请使用jpegran或jpegoptim删除元数据,以便与原始文件相比时不会影响文件大小


PNG和GIF不会失去任何质量,除非你减少颜色的数量。只需使用上述优化器之一。

使用相同或更高的质量设置保存JPEG不会导致明显的质量损失。只需使用所需的质量设置重新保存即可。如果文件最终变大,只需丢弃它并保留原始文件。在优化之前,请使用jpegran或jpegoptim删除元数据,以便与原始文件相比时不会影响文件大小


PNG和GIF不会失去任何质量,除非你减少颜色的数量。只需使用上面提到的其中一个优化器。

定义优化,这是什么意思?压缩?尺寸?调色板?交错?我是说压缩。当我提到“优化”时,我的意思是使文件尽可能小而不损失质量,因为我们的网站依赖于没有像素化或模糊的图像。我会编辑我的问题,然后看看你的答案。谢谢将优化步骤添加到上载过程中,并在存储图像时将其应用于所有传入图像一次。如果一个文件的大小已经低于您设置的标准,因为上传的人已经对其进行了优化,那么再次处理不会有任何影响。定义优化,您所说的优化是什么意思?压缩?尺寸?调色板?交错?我是说压缩。当我提到“优化”时,我的意思是使文件尽可能小而不损失质量,因为我们的网站不依赖图像