genbodev
1/10/2020 - 2:16 PM

image_php

Некоторые фишки при работе с изображениями

// Кодирование изображений в 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;
                    }