php - ImageMagick 读/写内存

标签 php imagemagick

我正在使用ImageMagick来创建图灵数,因为PHP GD不够强大,无法完成我们想要的事情。我的问题是,如何使用 ImageMagick 在代码中的不同点对图像运行不同的命令?例如,是否可以写入内存,然后从内存加载而不写入文件?

所以,例如,如果我运行它来构建我的背景:

exec("/usr/local/bin/convert '$this->background' -resize $this->width :save_to_mem:");

如果不需要,我不想保存文件。接下来我想在循环中引用该文件,也许像这样:

$text = $this->turing;
exec("/usr/local/bin/convert :load_from_mem: -size {$this->width}x{$this->height} -xc:white :save_to_mem:");
for($i = 0; $i < strlen($text); $i++){
    $number = randNum();
    exec("/usr/local/bin/convert :load_from_mem: -font Candice -pointsize 72 label:$number :save_to_mem:");
}

之后我想将文件写入 php 的输出缓冲区以显示在页面上。这可能吗?

最佳答案

Imagemagick 确实支持 memory program register (mpr:) 用于在内存中写入和读取图像。但是,内存中分配的任何内容都将在进程结束时释放,因此在设计解决方案时需要深思熟虑。

convert rose: -write mpr:apples +delete \
    \( mpr:apples -rotate 90 \) \
    \( mpr:apples -rotate 120 \) \
    mpr:apples +append aa_rose.png

mpr: example

另一种替代方法是将 volatile 内存的一部分挂载为目录 tmpfs ,然后在其中写入您的临时图像。

#/etc/fstab
tmpfs /var/imagemagick-tmp tmpfs nodev,nosuid,size=50M 0 0

关于php - ImageMagick 读/写内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22160137/

相关文章:

pdf - Windows 等价于 Unix 的 pdfinfo

php - FFMPEG - 用于动画的 Palettegen 不起作用

php - 将列表分成三列

javascript - 如何在使我的功能模块化的同时启用禁用文本输入

php - 添加代码突出显示和导出到 HTML 的工具

ruby-on-rails - Paperclip 安装后未定义的方法 has_attached_file?

image-processing - ImageMagick - Alpha channel 提取,6.7 与 6.9 上的不同结果(较暗)

php - 遍历 amazon S3 文件夹中的对象

php - 如何从父静态函数调用静态子函数?

php - 找到相交线之间的所有四边形?