Некоторые фишки при работе с изображениями
// Кодирование изображений в base64
$path = 'myimage.png';
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
echo $base64; // Выведет base64-код изображения
// <img src="ПОЛУЧЕННЫЙ КОД">
// Размеры изображения
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $fp) {
header("Content-type: {$size['mime']}");
fpassthru($fp);
exit;
} else {
// ошибка
}
$file = USERFILES . $data['image'];
if (file_exists($file)) {
// Получим изображение в виде строки и изменим размеры через Imagick
$image = file_get_contents($file);
$imagick = new Imagick();
$imagick->readImageBlob($image);
$imagick->adaptiveResizeImage(800,500, true); // Адаптив
// Полученные размеры
$width = $imagick->getImageWidth();
$height = $imagick->getImageHeight();
// Конвертирование base64
$image_blob = $imagick->getimageblob();
$type = pathinfo($data['image'], PATHINFO_EXTENSION);
$image_base64 = 'data:image/' . $type . ';base64,' . base64_encode($image_blob);
// Получим параметры оригинального изображения
$img_params = getimagesize($file);
// Соберём необходимые данные для передачи в шаблон
$data['image_base64'] = $image_base64;
$data['data_original_img_width'] = $img_params[0];
$data['data_original_img_height'] = $img_params[1];
$data['img_width'] = $width;
$data['img_height'] = $height;
}