я использовал утилиту поджигатель страницы скорости и одно из предложений, приведенных в том, чтобы сжать изображения - Так что я написал следующий код для сжатия изображенияPHP сжатия изображения, показывающее различные результаты
$filename="http://localhost.com/snapshots/picture.png"; $img = imagecreatefrompng($filename); $this->_response->setHeader('Content-Type', 'image/png'); imagepng($img,null,9); imagedestroy($img);
Теперь реального изображения размер 154K Так что я экспериментировал, давая различные уровни качества, и вот что я нашел
imagepng($img,null,0); --> Size = 225K imagepng($img,null,1); --> Size = 85.9K imagepng($img,null,2); --> Size = 83.7K imagepng($img,null,3); --> Size = 80.9K imagepng($img,null,4); --> Size = 74.6K imagepng($img,null,5); --> Size = 73.8K imagepng($img,null,6); --> Size = 73K imagepng($img,null,7); --> Size = 72.4K imagepng($img,null,8); --> Size = 71K imagepng($img,null,9); --> Size = 70.6K
ли эти результаты выглядят точным - я не знаю, почему с качеством 0 - размер изображения больше, чем фактический размер ,
Во-вторых, это лучший способ работы в PHP для сжатия изображений перед их рендерингом в браузере для повышения производительности.
на основе предложений, что лучше, чтобы сжать изображение один раз в момент сохранения - я выкопал на код, который называется программой вспышки для создания моментального снимка -
$video = $this->_getParam('video'); $imgContent = base64_decode($this->_getParam('snapshot')); file_put_contents("snapshots/" . $video . ".png", $imgContent);
EDITED на основе предложений Альвары, я сделал следующее изменение в код, который генерирует много маленького JPG файла
$video = $this->_getParam('video'); $imgContent = base64_decode($this->_getParam('snapshot')); file_put_contents("snapshots/" . $video . ".png", $imgContent); $filename="snapshots/".$video.".png"; $img = imagecreatefrompng($filename); imagejpeg($img,'test.jpg',75);
Так что теперь это процесс
3 шага- создать исходное изображение с помощью file_put_contents
- Используйте imagecreatefrompng и imagejpeg сжать файл и создать меньшее изображение
- Удалить Orig изображение
Это лучший оптимальный способ пойти об этом ,
Какова глубина бит оригинального изображения? – stillstanding
Я не совсем уверен, что такое глубина бит - Спасибо – Gublooo
Вам нужно решение PHP? – Gumbo