php imagemagick库安装使用

摘要:
Windows下iMagick中的Dll扩展http://pecl.php.net/package/imagick重命名为php_ Imagick。dll,然后复制到php的ext文件夹,在php中添加设置extension=php。ini文件_ imagick。在dll之后,检查phpinfo()中是否有imagick列。如果有,你可以测试一下。)如果没有Imagick项,请使用php扩展调试命令检查扩展中的问题,并确保三方的软件版本一致。Php扩展调试命令:运行:Php-rimagick1。如果错误为:“Php_imagick.dll'-%1不是有效的Win32应用程序”,则版本不匹配。

imagemagick介绍:

ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 100) including DPXEXR, GIF, JPEG, JPEG-2000, PDF, PNG, Postscript, SVG, and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.

The functionality of ImageMagick is typically utilized from the command line or you can use the features from programs written in your favorite language. Choose from these interfaces: G2F (Ada), MagickCore (C), MagickWand (C), ChMagick (Ch), ImageMagickObject (COM+), Magick++ (C++),JMagick (Java), L-Magick (Lisp), LuaNMagick (Neko/haXe), Magick.NET (.NET), PascalMagick (Pascal), PerlMagick (Perl), MagickWand for PHP(PHP), IMagick (PHP), PythonMagick (Python), RMagick (Ruby), or TclMagick (Tcl/TK). With a language interface, use ImageMagick to modify or create images dynamically and automagically.

ImageMagick is free software delivered as a ready-to-run binary distribution or as source code that you may use, copy, modify, and distribute in both open and proprietary applications. It is distributed under the Apache 2.0 license, approved by the OSI and recommended for use by the OSSCC.

The ImageMagick development process ensures a stable API and ABI. Before each ImageMagick release, we perform a comprehensive security assessment that includes memory error and thread data race detection to prevent security vulnerabilities.

The current release is ImageMagick 6.9.0-3 available from http://www.imagemagick.org/download. It runs on LinuxWindowsMac Os XiOS, Android OS, and others.

The authoritative ImageMagick web site is http://www.imagemagick.org.

著名的图片服务提供商 Flickr 使用的是ImageMagick,还有 Yupoo 、 手机之家 使用的也是ImageMagick。

下载:http://www.imagemagick.org/download/

windows安装:

下载windows版:

 安装后,在安装php扩展:官方推荐的3个:

MagickWand for PHP a native PHP-extension to the ImageMagick MagickWand API.

IMagick is a native PHP extension to create and modify images using the ImageMagick API. Documentation for the extension is available here.

phMagick is a wrapper class for ImageMagick, wrapping the most common web image manipulation actions in easy to use functions, but allowing full access to ImageMagick's power by issuing system calls to it's command-line programs.

决定使用Imagick。

windows下在iMagick的dll扩展 http://pecl.php.net/package/imagick 

重命名为php_imagick.dll 然后copy到php的ext文件夹下
   在php.ini文件中添加设置
   extension=php_imagick.dll
   之后查看phpinfo() 里面有没有imagick一栏,如果有的话就可以进行测试了。

 (

php5.4.x or php5.5.x 

dyn = dynamic, st = static, q16 = 16 bit, q8= 8 bit.

以上标识,同你下载的ImageMagick下载标识相同,本人用的是q16 。安装路径不要有空格。

5. 把dll文件重命名为php_imagick.dll,并放到php 扩展文件目录 php/ext 中。

6. 在 php.ini 配置文件中添加,extension=php_imagick.dll。

7. 重启电脑,只重启apache不管用的情况下,重启下PC。因为扩展底层使用的是imageMagic软件,所以软件重启电脑,重新加载软件,并刷新path路径。

我总是报错:

“  系统错误 ,无法启动此程序因为计算机丢失CORE_RL_wand_.dll ” 

把下载php_imagick-3.4.3-5.5-ts-vc11-x86下面的所有dll放在windows system32下面还是不行,最后看了一篇博客,

 (解决了,把扩展包中的“CORE_*.dll” 这些dll文件 放到 你的php.exe同级目录下

如果没有Imagick 项,请 使用 php扩展调试命令  来检查扩展中存在的问题, 并确保三方软件版本一致即可。

php扩展  调试命令:

在cmd运行:  php --ri imagick

1. 如果报错是:“php_imagick.dll' - %1 不是有效的 Win32 应用程序” ,则说明版本不相符合。 需要检查   imagick软件本身( 如x86)、php本身( x86 ts (thread safe) )、php扩展php_imagick.dll (ts) 三方版本 要一致。

2. 如果报错是:“php.exe - 系统错误 ,无法启动此程序因为计算机丢失CORE_RL_wand_.dll ” , 说明你没有将 php_imagick-3.3.0-5.4-ts-vc9-x86.zip 扩展包中的“CORE_*.dll” 这些dll文件 放到 你的php.exe同级目录下。   ,只需要拷贝 CORE_*.dll 到php目录就可以解决了。

3. 如果php --ri imagick 显示的结果  ImageMagick number of supported formats:  => 0 支持的图片格式数量为0,请看第5步需要新建一个环境变量。

4.如果php代码执行调用时报错:“ NoDecodeDelegateForThisImageFormat ”,表明你的php_imagick.dll的版本 并不支持或并不匹配 ImageMagick软件版本,这时候 php --ri imagick 的结果也显示为: ImageMagick number of supported formats => 0 。需要更换ImageMagick软件版本。 

http://www.cnblogs.com/wangqishu/p/5609950.html

参考:http://blog.sina.com.cn/s/blog_966e43000101bgqj.html

LInux安装:

下载源代码:

参考官方教程:

cd ImageMagick-6.9.0

./configure

make

make install

执行:/usr/local/imagemagick/bin/convert logo: logo.gif 测试一下ImageMagick是否可以正常运行。

(源码安装我有点问题,sudo apt-get install imagemagick

安装完后

/usr/bin下有工具软件

convert -version 能正常输出。

我用这种方式,后面安装php imagick出现问题:

checking ImageMagick MagickWand API configuration program... configure: error: not found. Please provide a path to MagickWand-config or Wand-config program.

在网上搜了说要装:

apt-get install libmagickwand-dev libmagickcore-dev

apt-get install libmagickwand-dev libmagickcore-dev
安装后果然没有问题了,结果:

Installing shared extensions: /opt/lampp/lib/php/extensions/no-debug-non-zts-20121212/
Installing header files: /opt/lampp/include/php/

 

或者:convert -version

2、安装PHP扩展:imagick

最新的包可以在下面的地址中找到http://pecl.php.net/package/imagick

1
2
3
4
5
6
7
8
9
10
11
12
wget http://pecl.php.net/get/imagick-3.0.1.tgz
tar zxvf imagick-3.0.1.tgz
cd imagick-3.0.1/
export PKG_CONFIG_PATH=/usr/local/imagemagick/lib/pkgconfig
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-imagick=/usr/local/imagemagick
make && make install

/usr/local/php_fcgi/bin/phpize
./configure --with-php-config=/usr/local/php_fcgi/bin/php-config --with-imagick=/usr/local/imagemagick
make && make install
cd ../

编辑/usr/local/php/etc/php.ini 添加:extension = "imagick.so"

编辑/usr/local/php_fcgi/etc/php.ini 添加:extension = "imagick.so"

重启php-fpm或apache。

lu-restart

先试试,再执行:ldconfig ,重新加载一些链接库。

(我用的是pecl install imagick 安装,安装完后提示:

You should add "extension=imagick.so" to php.ini

增加就行了。)

php_imagick程序示例

1.创建一个缩略图并显示出来
<?php
    header('Content-type: image/jpeg');
    $image = new Imagick('image.jpg');
    // If 0 is provided as a width or height parameter,// aspect ratio is maintained
    $image->thumbnailImage(100, 0);
    echo $image;
?>

2.创建一个目录下的缩略图,并保存
<?php
    $images = new Imagick(glob('images
    $im = new Imagick("example.gif");
    
    foreach ($im as $frame) {
    
    $frame->thumbnailImage(50, 50);
    
    $frame->setImagePage(50, 50, 0, 0);
    }
    $im->writeImages("example_small.gif", true);
?>

http://blog.sina.com.cn/s/blog_8da982ac010171iz.html

http://blog.csdn.net/andy1219111/article/details/38335987

http://blog.csdn.net/czloveyeer/article/details/8179766

http://blog.lizhigang.net/archives/228

文档:

http://php.net/manual/zh/book.imagick.php

http://www.bitscn.com/pdb/php/201407/235972.html

http://wenku.baidu.com/view/7b83e46f67ec102de3bd893f.html

免责声明:文章转载自《php imagemagick库安装使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Eclipse安装插件的两种方法(转)org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

php实现SESSION跨域

稍微大一点的网站,通常都会有不只一个服务器,每个服务器运行着不同的功能模块或者不同的子系统,他们使用不同的二级域名,比如www.a.com、i.a.com、bbs.a.com。而一个整体性强的网站,用户系统是统一的,即一套用户名、密码在整个网站的各个子系统中都是可以登录使用的。各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器...

PHP设计模式之注册模式

单例模式保证了一个类中只有一个实例被全局访问,当你有一组全局对象被全局访问时可能就需要用到注册者模式 (registry),它提供了在程序中有条理的存放并管理对象 (object)一种解决方案。一个“注册模式”应该提供get() 和 set()方法来存储和取得对象(用一些属性key)而且也应该提供一个isValid()方法来确定一个给定的属性是否已经设置。...

基于 Yii 2.0 高级模版的控制台命令实现定时任务的流程

、复制vendoryiisoftyii2consolecontrollersCacheController.php至consolecontrollersLuaGameTeamSkillController.php,如图1 图1 2、将consolecontrollersLuaGameTeamSkillController.php重命名为consolec...

[php] 判断当前运行模式

//判断是否cgi模式 define('IS_CGI',substr(PHP_SAPI, 0,3)=='cgi' ? 1 : 0 ); //判断操作系统是否为windows define('IS_WIN',strstr(PHP_OS, 'WIN') ? 1 : 0 ); //判断是否命令行cli模式 define('IS_CLI',PHP_SAP...

php 获取远程图片长宽和大小

/***获取远程图片的宽高和体积大小** @param string $url 远程图片的链接* @param string $type 获取远程图片资源的方式, 默认为 curl 可选 fread* @param boolean $isGetFilesize 是否获取远程图片的体积大小, 默认false不获取, 设置为 true 时 $type 将强制为...

20个PHP开源内容管理系统

内容管理系统(CMS)广泛应用于企业网站、个人网站、博客、电子商务网站等内容更新频繁的网站,可以轻松处理大量的数据请求,实现便捷管理。 本文为你整理了一些用 PHP 编写的开源 CMS,你可以用于 PHP 学习,或根据自己的需求进行修改。 (编注:英文原文中介绍了60个开源的PHP CMS,这篇译文摘译了20个。) 1.DynPage DynPage 是...