PHP функция изменения размера кодированного в base64 изображения
2017-01-10
PHP функция для изменения размера base64 кодированного изображения.
На вход функции подается строка с кодированным изображением. Внутри функции идет проверка размера, и, если размер меньше указанного, возвращаем false, если больше - уменьшаем.
private function resizeImage($img)
{
# если приходит пустая строка, пишем ошибку
if(strlen($img) == 0)
return false;
else
$im = imagecreatefromstring($img);
# вычисляем высоту и ширину
$imageY = imagesy($im); // высота
$imageX = imagesx($im); // ширина
$height = 300; // новая ширина
# если старое изображение меньше или равно новому, просто возвращаем его
if($imageX >= $height) {
$width = (($imageX * $height) / $imageY); // вычисляем высоту
# создаем новое изображение
$new_image = imagecreatetruecolor($width, $height);
# Копирование и изменение размера изображения
imagecopyresized($new_image, $im,
0, 0, 0, 0,
$width, $height,
$imageX, $imageY);
ob_start();
imagejpeg($new_image,null,60);
$data = ob_get_contents();
ob_end_clean();
$image = base64_encode($data);
} else {
return false;
}
return $image;
}