Php ImageMagick是否具有本机格式?

Php ImageMagick是否具有本机格式?,php,imagemagick,imagick,Php,Imagemagick,Imagick,我通过几个步骤使用PHPImagick扩展创建图像 我想将中间结果缓存到磁盘 是否有一种格式,我可以使用,保留所有渠道,最好也是设置 $i = new Imagick(); $i->setImagecolorspace(); $i->compositeImage(...); $i->setImageBackgroundColor(...); $i->setImageFormat(???); $i->writeImage('cache.im'); $i2 = ne

我通过几个步骤使用PHPImagick扩展创建图像

我想将中间结果缓存到磁盘

是否有一种格式,我可以使用,保留所有渠道,最好也是设置

$i = new Imagick();
$i->setImagecolorspace();
$i->compositeImage(...);
$i->setImageBackgroundColor(...);

$i->setImageFormat(???);
$i->writeImage('cache.im');

$i2 = new Imagick();
$i2->readImage('cache.im');

现在,
$i2
应该是与
$i

完全相同的图像,正如Paul所说,它是MPC,它基本上是文件的内存转储,分为两部分,一部分是包含所有元数据的头文件,另一部分是未编码和未压缩的像素文件,这样它就可以直接读取到内存中,而无需任何CPU工作

例如:

convert -size 4x4 xc:white a.mpc
屈服

-rw-------  1 mark  staff  128 23 Sep 09:29 a.cache     <--- the pixel array
-rw-r--r--  1 mark  staff  357 23 Sep 09:35 a.mpc       <--- the header and metadata
a.cache
包含

id=MagickCache
magick-signature=4026865107
class=DirectClass  colors=0  matte=False
columns=4  rows=4 depth=16
colorspace=sRGB
page=4x4+0+0
rendering-intent=Perceptual
gamma=0.454545
red-primary=0.64,0.33  green-primary=0.3,0.6  blue-primary=0.15,0.06
white-point=0.3127,0.329
date:create=2015-09-23T09:35:05+01:00
date:modify=2015-09-23T09:35:05+01:00
xxd -g4 a.cache
0000000: ffffffff ffff0000 ffffffff ffff0000  ................
0000010: ffffffff ffff0000 ffffffff ffff0000  ................
0000020: ffffffff ffff0000 ffffffff ffff0000  ................
0000030: ffffffff ffff0000 ffffffff ffff0000  ................
0000040: ffffffff ffff0000 ffffffff ffff0000  ................
0000050: ffffffff ffff0000 ffffffff ffff0000  ................
0000060: ffffffff ffff0000 ffffffff ffff0000  ................
0000070: ffffffff ffff0000 ffffffff ffff0000  ................
另一种保留所有元数据的格式是
MIFF
格式。您可以这样使用:

convert -size 4x4 xc:white MIFF:a
more a
id=ImageMagick  version=1.0
class=DirectClass  colors=0  matte=False
columns=4  rows=4  depth=16
colorspace=sRGB
page=4x4+0+0
rendering-intent=Perceptual
gamma=0.454545
red-primary=0.64,0.33  green-primary=0.3,0.6  blue-primary=0.15,0.06
white-point=0.3127,0.329
date:create=2015-09-23T09:37:04+01:00
date:modify=2015-09-23T09:37:04+01:00
^L
:^Z<FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF>
<FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF>
<FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF>
<FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF>
这就产生了:

-rw-r--r--   1 mark  staff     439 23 Sep 09:37 a
看起来是这样的:

convert -size 4x4 xc:white MIFF:a
more a
id=ImageMagick  version=1.0
class=DirectClass  colors=0  matte=False
columns=4  rows=4  depth=16
colorspace=sRGB
page=4x4+0+0
rendering-intent=Perceptual
gamma=0.454545
red-primary=0.64,0.33  green-primary=0.3,0.6  blue-primary=0.15,0.06
white-point=0.3127,0.329
date:create=2015-09-23T09:37:04+01:00
date:modify=2015-09-23T09:37:04+01:00
^L
:^Z<FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF>
<FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF>
<FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF>
<FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF><FF>
更多信息
id=ImageMagick版本=1.0
class=DirectClass颜色=0无光=False
列=4行=4深度=16
颜色空间=sRGB
页码=4x4+0+0
渲染意图=感知
伽马=0.4545
红色初级=0.64,0.33绿色初级=0.3,0.6蓝色初级=0.15,0.06
白点=0.3127,0.329
日期:create=2015-09-23T09:37:04+01:00
日期:修改=2015-09-23T09:37:04+01:00
^L
:^Z
MIFF格式的一个很好的特性是它是“流式”的,这意味着您可以在单个文件中附加/连接任意数量的图像

需要注意的一个因素是。。。不建议将这些格式用于长期存储,因为它们不能保证跨
ImageMagick
版本或平台兼容