Я пытаюсь уменьшить размер блобов изображений до 150 КБ
Я сделал php-функцию для этого, однако imagejpeg
продолжает выводить данные вместо того, чтобы сохранять их в переменной.
В принципе, кто-нибудь знает, как сжать изображение до 150 КБ или ниже?Потеря качества в порядке.
Он входит как base64.Затем я декодирую его в BLOB и пропускаю через эту функцию.
function compressImageBlob($image_blob, $type, $loop = 0) {
global $MAX_IMAGE_SIZE;
$blob_size = strlen($image_blob);
$loop++;
if($loop > 10){
return $image_blob;
}
if($blob_size >= $MAX_IMAGE_SIZE){
$quality = ($MAX_IMAGE_SIZE/$blob_size)*10;
if($quality >= 100){
// it should never come here, but just in case
$quality = 10;
}
$img = imagecreatefromstring($image_blob);
$image_blob = imagejpeg($img, NULL, $quality);
$image_blob = compressImageBlob($image_blob,$type,$loop);
}
return $image_blob;
}