Бортовой журнал Ктулху

PHP функция изменения размера кодированного в base64 изображения

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;
 }