Imagick
在线手册:中文  英文

Imagick::__construct

(PECL imagick 2.0.0)

Imagick::__constructThe Imagick constructor

说明

Imagick::__construct ( mixed $files )

Creates an Imagick instance for a specified image or set of images.

参数

files

The path to an image to load or an array of paths. Paths can include wildcards for file names, or can be URLs.

返回值

Returns a new Imagick object on success.

错误/异常

错误时抛出 ImagickException。


Imagick
在线手册:中文  英文

用户评论:

andyearnshaw at do-not-spam-mygmail dot com (2013-03-13 10:13:49)

If you try and load an ICO file whose extension isn't .ico, you'll get an error going along the lines of no delegate existing for the supplied image's format.  The can occur, for example, if you're using a temporary file.

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

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

Your first thought might be to rename your temporary file's extension to .ico, but I decided to try something that works on the command line―prefix the file name with 'ico:'

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

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

martin at lks dot com (2012-05-23 16:29:34)

If you are using windows imagemagick, at leat in my case, you have to include the full path of the file, including the 'c:' at the beginning. If you don't know for sure the way that the filename is going to come, you can use realpath() function to normalize it:

<?php
    $incoming_file 
'/Users/John/Desktop/file_loco.jpg';
    
$img = new Imagick(realpath($incoming_file));
    
// realpath() will convert '/Users/John/Desktop/file_loco.jpg' to 'C:\Users\John\Desktop\file_loco.jpg'
    // and ImageMagick will have no trouble when loading
?>

易百教程