我正在使用PNG图像并尝试翻转(镜像) php的想象功能 它正好获得翻牌但是
基本图像格式为24位RGB
并在转换后获取
8位Pallated
。所以主要的问题是,当我用来将两个图像放在我的 pdflib 页面中时,其中一个图像(已转换)显示为卷曲.... 原始图像 通过Imagick在Flip(镜像)之后输出并在PDFlib中渲染 - >
我的代码很简单---->
$im = new Imagick($background_image);
$im->flopImage();
$im->writeimage($background_image."_flop.png");
修改日期=> 2013年10月29日 原始图片 - > 大小 4.68 KB 位深度 32 翻转图像 - > 尺寸 7.99 KB 位深度 64 自动更改它的属性 的 ORIGINAL
转换
答案 0 :(得分:4)
Imagick正在使用可能的最小格式来保存图像。以这些格式保存都会生成相同的图像,但大小如下:
保存到最小的文件通常是人们想要的。但是,您可以通过几种方式禁用此功能。
通过将png:format
选项设置为png00
,您可以告诉Imagick使用与源图像相同的PNG格式。 e.g。
$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:bit-depth
和png:color-type
等明确设置保存PNG文件时使用的图像格式。
$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的失败图像。