Проверялось на png, сжатие почти в 3 раза(без потери качества)
Нашел на западном форуме и немного переделал функцию
Как пользоваться:
Создаем файл(file.php)
В неё кидаем код что будет ниже
Чтоды вывести сжатую картинку нажно написать приблизительно такое:
<img src=\"file.php?file=название_картинки.png&q=степень_сжатия(от 100 до 0, чем меньше тем хуже качество, но меньше весит)\" alt=\"\">
Если чтото не понятно писать в личку
<?php
/**
* $_GET['file'] - название изображения
* $_GET['q'] - степень сжатия
*/
function compress_image ( $source_url , $quality ) {
$info = getimagesize ( $source_url ) ;
if ( $info [ 'mime' ] == 'image/jpeg' ) $image = imagecreatefromjpeg ( $source_url ) ;
elseif ( $info [ 'mime' ] == 'image/gif' ) $image = imagecreatefromgif ( $source_url ) ;
elseif ( $info [ 'mime' ] == 'image/png' ) $image = imagecreatefrompng ( $source_url ) ;
header ('Content-Type: image/jpeg');
//save it
echo imagejpeg ( $image , NULL, $quality ) ;
//return destination file url
}
compress_image ('адрес_к_папке_с_изображениями/'.intval($_GET['file']).'.png',$_GET['q']);
?>