如何使用Imagick的writeImage()函数?

8

如果我将脚本保留在与被操作的图像相同的目录中,则此方法有效。生成的结果图像“foo.jpg”也会在同一位置生成。

<?php

$im = new imagick('image.jpg');
$im->thumbnailImage( 200, 0);
$im->writeImage("foo.jpg");

?>

如果脚本位于一个位置,我希望使用的图像位于另一个位置,并且我希望保存缩略图的位置在其他地方,如何指定这些路径?

做这样的事情是不起作用的:

$im = new imagick('path/to/image.jpg');

检查正确的命名空间,如果使用了 PSR 约定,则应为 \Imagick。或者检查大小写敏感的名称,使用 'Imagick' 而不是 'imagick'。你也可以使用带有标志的 pathinfo()、file_exists()、is_writable() 或 dirname() 来获取正确的路径并与文件名连接。但无论哪种方式,你都必须设置一个基本目录,从中指向所有文件。这取决于你。 - Felix Aballi
1个回答

6

可能是文件系统问题。先在php中获取一个文件指针,检查是否有任何问题。

$fileHandle = fopen("path/to/image.jpg", "w");

您可以使用Imagick函数(6.3.6版本或更高版本);
$im->writeImageFile($filehandle);

也许你应该声明:$imagick = new Imagick('path/to/image'); $imagick->writeImage('path/to/image'); $imagick->close(); $imagick->destroy(); 以释放所有资源。 - Felix Aballi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接