У меня есть PNG изображение и попытка флопа (зеркало) с помощью функции imagick php. Он точно выполняет флоп, но
Базовое изображение в формате 24 бит RGB
и после преобразования он получает
8 бит с чередованием
, Таким образом, основная проблема заключается в том, что когда я использую для размещения обоих изображений на своих страницах pdflib, одно из изображений (конвертированных) отображает фигурные фигуры … Исходное изображение Выход после флопа (зеркало) с помощью Imagick и рендеринга в PDFlib ->
Мой код просто —->
$im = new Imagick($background_image); $im->flopImage(); $im->writeimage($background_image."_flop.png");
Дата изменения => 29 Окт 2013 Оригинальное изображение -> Размер 4.68 KB Бит Глубина 32 Flopped Image -> Размер 7.99 KB Бит Глубина 64 Автоматически изменяет его свойства ОРИГИНАЛ
переоборудованный
Imagick использует самый маленький формат для сохранения изображения. Сохранение в этих форматах создает одинаковое изображение, но имеет размеры:
Сохранение до наименьшего возможного файла обычно является желанием людей. Однако вы можете отключить это несколькими способами.
Вы можете указать Imagick использовать тот же формат PNG, что и исходное изображение, установив параметр png:format
в png00
. например
$imagick = new Imagick(realpath("../images/FlopOriginal.png")); $imagick->flopImage(); $imagick->setOption('png:format', 'png00'); $imagick->writeImage("../images/Flop.png");
Полными параметрами для png:format
являются png8, png24, png32, png48, png64 и png00.
В качестве альтернативы вы можете явно указать формат изображения, который будет использоваться при сохранении PNG-файла, через png:bit-depth
и png:color-type
например
$imagick = new Imagick(realpath("../images/FlopOriginal.png")); $imagick->flopImage(); $imagick->setOption('png:bit-depth', '8'); $imagick->setOption('png:color-type', 6); $imagick->writeImage("../images/Flop.png");
Значения типа цвета взяты из libpng.h и являются:
PNG_COLOR_TYPE_GRAY 0 PNG_COLOR_TYPE_RGB 2 PNG_COLOR_TYPE_PALETTE 3 PNG_COLOR_TYPE_GRAY_ALPHA 4 PNG_COLOR_TYPE_RGB_ALPHA 6
Оба этих метода создают на флопе изображение, которое является RGBA 32bit, как исходное изображение.