PHP Imagick:如何将自定义图像属性保存到文件

乔恩·B

我有一个PHP应用程序,该应用程序正在使用Image Magick(Imagick()处理大量图像,并尝试将一段计算所得的数据保存到要读取的图像中(如果可以节省处理时间或计算并保存以供下次使用)使用Imagick::setImageProperty()Imagick::getImageProperty()我在CodeIgniter 2中有一个测试控制器,如下所示:

class Example extends CI_Controller
{
    public function __construct()
    {
         parent::__construct();
    }

    public function property()
    {
        $im = new Imagick();
        $im->newimage(50, 50, 'blue');
        $im->setimageformat('jpg');
        $im->setimageproperty('My-App:My-Prop', 'rawr');
        var_dump($im->getimageproperty('My-App:My-Prop'));
        $im->writeimage(getcwd().'/images/test/output.jpg');
        echo '<br />'.var_dump($im->getimageproperty('My-App:My-Prop'));
        echo '<img src="/images/test/output.jpg" /><br />';

        $this->read();
    }

    public function read()
    {
        $im = new Imagick(getcwd().'/images/test/output.jpg');
        var_dump($im->getimageproperty('My-App:My-Prop'));
    }
}

该属性已成功成功读取了两次,但是一旦Imagick基于保存的图像实例化了一个新对象,该属性将无法读取并返回false

字符串(4)“原始”字符串(4)“原始”

在此处输入图片说明

布尔值(false)

是否无法将自定义图像属性保存到文件,还是我滥用该类?

PS ...我故意不使用CodeIgniter图像库,但是如果在这种情况下可以提供帮助,则可以接受该想法。

达纳克

这似乎是ImageMagick库和JPEG图像格式的限制。简短的版本是ImageMagick库仅保留名为“ comment”的属性来存储JPG图像。有关示例,请参见下面的代码。

TBH我认为明智的做法是将元信息与图像文件分开存储。例如,获取图像文件名,附加“ .json”并将计算出的数据存储在其中。

它将起作用,避免在未修改图像的情况下重新保存图像,并且通常比将图像存储在图像文件中更可靠。

$propertyNames = [
    "comment",
    "anything_else"
];

$formats = [
    'jpg',
    'png'
];

foreach ($formats as $format) {
    foreach ($propertyNames as $propertyName) {
        $imagick = new Imagick('./LittleRobin.jpg');
        $imagick->setImageProperty($propertyName, "Modified value");
        $imagick->setFormat($format);
        $imagick->writeImage("./testModified.".$format);
        $imagick2 = new Imagick("./testModified.".$format);
        printf(
            "After reloading '%s' property '%s' is:%s\n",
            $format,
            $propertyName,
            var_export($imagick2->getImageProperty($propertyName), true)
        );
    }
}

输出为:

After reloading 'jpg' property 'comment' is:'Modified value'
After reloading 'jpg' property 'anything_else' is:false
After reloading 'png' property 'comment' is:'Modified value'
After reloading 'png' property 'anything_else' is:'Modified value'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将自定义类型保存到QSettings?

来自分类Dev

如何将自定义变量放入PHP错误日志

来自分类Dev

如何使用php更新docx文件的自定义属性

来自分类Dev

如何在Python中将自定义信息保存到PNG图像文件中?

来自分类Dev

如何将自定义变量保存到给定文件?

来自分类Dev

如何将自定义数据保存到文本文件?

来自分类Dev

如何将图像保存到自定义相册?

来自分类Dev

将图像以zip格式保存在php中的自定义文件夹中

来自分类Dev

如何包含自定义的php文件?

来自分类Dev

如何将图像保存到文件android自定义视图?

来自分类Dev

如何将html输出从php保存到.java文件

来自分类Dev

如何将PHP网页的内容保存到XML文件?

来自分类Dev

如何将此代码的输出保存到文件中?(PHP)

来自分类Dev

如何从Javascript函数获取数据并将其保存到php中用户的自定义元字段?

来自分类Dev

如何将自定义对象加载并保存到iOS和OSX?

来自分类Dev

如何将完全自定义的 PHP/web 文件上传到 WordPress?

来自分类Dev

如何使用ffmpeg将自定义数据保存到电影文件的标头中?

来自分类Dev

html/php 使用自定义文件名创建文本文件并将其保存到根目录

来自分类Dev

将自定义PHP表单添加到Wordpress

来自分类Dev

如何拒绝在php中访问用户的自定义文件

来自分类Dev

如何将自定义属性添加到Symfony Doctrine YAML映射文件中

来自分类Dev

如何将自定义数据放入JSON文件?

来自分类Dev

如何将产品保存到自定义文本文件?

来自分类Dev

如何将 C# 自定义类列表 <> 保存到文件流?

来自分类Dev

如何使用php扫描目录并仅将图像文件名保存到数组中?

来自分类Dev

如何从PHP中的mysql数据库中提取可能损坏的图像斑点并保存到文件

来自分类Dev

如何将PHP会话数据保存到数据库而不是文件系统中?

来自分类Dev

如何将php查询的所有结果保存到.txt文件?

来自分类Dev

如何将多维数组保存到平面文本文件-PHP

Related 相关文章

  1. 1

    如何将自定义类型保存到QSettings?

  2. 2

    如何将自定义变量放入PHP错误日志

  3. 3

    如何使用php更新docx文件的自定义属性

  4. 4

    如何在Python中将自定义信息保存到PNG图像文件中?

  5. 5

    如何将自定义变量保存到给定文件?

  6. 6

    如何将自定义数据保存到文本文件?

  7. 7

    如何将图像保存到自定义相册?

  8. 8

    将图像以zip格式保存在php中的自定义文件夹中

  9. 9

    如何包含自定义的php文件?

  10. 10

    如何将图像保存到文件android自定义视图?

  11. 11

    如何将html输出从php保存到.java文件

  12. 12

    如何将PHP网页的内容保存到XML文件?

  13. 13

    如何将此代码的输出保存到文件中?(PHP)

  14. 14

    如何从Javascript函数获取数据并将其保存到php中用户的自定义元字段?

  15. 15

    如何将自定义对象加载并保存到iOS和OSX?

  16. 16

    如何将完全自定义的 PHP/web 文件上传到 WordPress?

  17. 17

    如何使用ffmpeg将自定义数据保存到电影文件的标头中?

  18. 18

    html/php 使用自定义文件名创建文本文件并将其保存到根目录

  19. 19

    将自定义PHP表单添加到Wordpress

  20. 20

    如何拒绝在php中访问用户的自定义文件

  21. 21

    如何将自定义属性添加到Symfony Doctrine YAML映射文件中

  22. 22

    如何将自定义数据放入JSON文件?

  23. 23

    如何将产品保存到自定义文本文件?

  24. 24

    如何将 C# 自定义类列表 <> 保存到文件流?

  25. 25

    如何使用php扫描目录并仅将图像文件名保存到数组中?

  26. 26

    如何从PHP中的mysql数据库中提取可能损坏的图像斑点并保存到文件

  27. 27

    如何将PHP会话数据保存到数据库而不是文件系统中?

  28. 28

    如何将php查询的所有结果保存到.txt文件?

  29. 29

    如何将多维数组保存到平面文本文件-PHP

热门标签

归档