我有疑問。如果我強制imagejpeg保存.png文件,是否有問題? 就像這個例子:將imagejpeg強制爲.png
imagejpeg($img,$_SERVER['DOCUMENT_ROOT']."/test.png",80);
我想用這種方法,因爲我可以用$quality
過濾器。 在這種方法中,我有一個保存的約25kb的.png文件,但是如果我使用imagepng,我的圖像大約爲200kb(我使用0-9的$質量等級,但是我沒有看到任何變化,只有-20kb )。 我不想犯一個錯誤,因爲我的網站每秒都會生成.png圖像。
方法2. 我試圖用pngquant壓縮.png圖像,但我不知道當我使用imagepng函數時如何去做。 我嘗試過這樣的事情,但如果我將圖像傳遞給函數,它不起作用。
ob_start();
imagepng($img);
$png = ob_get_clean();
file_put_contents($_SERVER['DOCUMENT_ROOT']."/test.png", compress($png);
function compresss($img)
{
//...
}
在其他情況下,如果我有$png = $_FILES['file']['tmp_name']
正在工作。那麼有沒有辦法用pngquant壓縮,或者如果我強制imagejpeg保存.png文件,是否有問題?
使用擴展名「png」保存JPEG沒有特殊問題,但爲什麼不使用擴展名'jpg'代替?只是給它一個不同的文件擴展名不會改變你創建的文件類型。 – iainn
使用imagejpeg總是生成一個JPEG文件 - 即使您將其命名爲blabla.doc。由於質量低,尺寸要小得多。 –
問題是由於格式的細節,PNG只能被壓縮太多。如果你想要一個更小的尺寸,你需要使用包含所有內容的JPEG。 – apokryfos