Imagick::__construct

(PECL imagick 2, PECL imagick 3)

Imagick::__constructImagick 构造函数

说明

public Imagick::__construct(混合 $files = ?)

为指定图像或图像集创建 Imagick 实例。

参数

files

要加载的图像的路径或路径数组。路径可以包含文件名通配符,也可以是 URL。

错误/异常

在错误时抛出 ImagickException。

添加注释

用户贡献注释 4 个注释

martin at lks dot com
12 年前
如果您使用的是 Windows ImageMagick,至少在我的情况下,您必须包含文件的完整路径,包括开头的“c:”。如果您不确定文件名将以何种方式传入,可以使用 realpath() 函数将其规范化

<?php
$incoming_file
= '/Users/John/Desktop/file_loco.jpg';
$img = new Imagick(realpath($incoming_file));
// realpath() 将把 '/Users/John/Desktop/file_loco.jpg' 转换为 'C:\Users\John\Desktop\file_loco.jpg'
// ImageMagick 在加载时将不会有任何问题
?>
andyearnshaw at do-not-spam-mygmail dot com
11 年前
如果您尝试加载扩展名不是 .ico 的 ICO 文件,您将收到错误提示,提示该文件格式没有委托。例如,如果您使用的是临时文件,就会发生这种情况。

<?php
$tmp
= tempnam('cache/images', 'ico_');

if (
copy('http://remote.url/favicon.ico', $tmp)) {
$ico = new Imagick($tmp); // <-- 错误!
}
?>

您首先想到的可能是将临时文件的扩展名重命名为 .ico,但我决定尝试在命令行上可行的方法——在文件名之前添加“ico:”

<?php
$tmp
= tempnam('cache/images', 'ico_');

if (
copy('http://remote.url/favicon.ico', $tmp)) {
$ico = new Imagick("ico:$tmp"); // <-- 工作正常!
}
?>
divinity76 at gmail dot com
5 年前
如果您需要从包含图像二进制数据的字符串创建图像,请使用 readImageBlob,例如

<?php
$imagick
= new Imagick();
$imagick->readImageBlob($str);
?>

同样,如果您需要从文件句柄(没有文件路径)创建图像,请使用 readImageFile()
Jerome
10 年前
您可以使用 PDF 页面作为图像。为此,请安装 Ghostscript 库。
IMagick 使用 Ghostscript 读取 PDF 页面。

<?php
$myurl
= '/pdf/mypdf.pdf';
$image = new Imagick(realpath($myurl).'[0]'); //[0] 表示所需页面的编号
$image->setResolution( 300, 300 );
$image->setImageFormat( "png" );
$image->writeImage(realpath('./mypdf.png'));
?>
To Top