Inhaltsverzeichnis
ImageMagick和magickwand是什么?如何加装?
Heim Backend-Entwicklung PHP-Tutorial PHP扩展MagickWand 是什么?如何加装?

PHP扩展MagickWand 是什么?如何加装?

Jun 20, 2016 pm 01:04 PM
php扩展

​PHP扩展MagickWand

PHP 扩展 MagickWand ImageMagick
简介

MagickWand 是PHP的一个扩展程序,通过它建立起与ImageMagick的交互,进行图片的处理。它是默认的GD图象函数库的绝佳替代方案。从安全性和易用性来说,在PHP中使用MagickWand比使用命令行ImageMagick要安全快捷的多。另外 imagick也可用于PHP中作为ImageMagick的替代方案。

MagickWand 有两种形式:

1、只是建立与ImageMagick的交互,这种情况必须先安装ImageMagick,优点是扩展程序文件小(一般几百K),可以快速升级ImageMagick版本,不过WINDOWS临时目录需要特殊权限。
2、扩展程序本身包含了ImageMagick,优点是不需要额外安装ImageMagick,临时目录不需要特殊权限,但扩展程序文件比较大(一般4M以上)。

MagickWand 默认并没有在PHP的安装包里,需要去PHP网站上下载,并在PHP.INI中打开此扩展。

代码示例


    // convert flower.jpg -quality 80% flower_quality.jpg
    $resource = NewMagickWand();
    MagickReadImage( $resource, 'small_flower.jpg' );
    MagickSetFormat($resource, 'JPG');
    MagickSetImageCompression($resource, MW_JPEGCompression);
    MagickSetImageCompressionQuality($resource, 80.0);
    header( 'Content-Type: image/gif' );
    MagickEchoImageBlob( $resource );
Nach dem Login kopieren

在图片上写文字:


    // convert flower.jpg -font courier -fill white -pointsize 20 -annotate +50+50 Flower flower_annotate1.jpg
     
    $resource = NewMagickWand();
    $dwand = NewDrawingWand();
    $pwand = NewPixelWand();
     
    PixelSetColor($pwand, "white");
    DrawSetFont($dwand, "/usr/share/fonts/default/TrueType/cour.ttf");//指定字体
    DrawSetFontSize($dwand, 20);
    DrawSetFillColor($dwand, $pwand);
     
    DrawSetGravity($dwand, MW_SouthGravity);
     
    MagickReadImage( $resource, 'small_flower.jpg' );
     
    if( MagickAnnotateImage( $resource, $dwand, 0, 0, 0, "Flower" ) ){
        header( 'Content-Type: image/gif' );
        MagickEchoImageBlob( $resource );
    }else{
        echo MagickGetExceptionString($resource);
    }
 
Nach dem Login kopieren

裁切:


    // convert flower.jpg -crop 128×128+50+50 flower_crop.jpg
    $resource = NewMagickWand();
    MagickReadImage( $resource, 'small_flower.jpg' );
    if( MagickCropImage( $resource, 128, 128, 50, 50 ) ){
    header( 'Content-Type: image/gif' );
        MagickEchoImageBlob( $resource );
    }else{
        echo MagickGetExceptionString($resource);
    }
Nach dem Login kopieren

旋转图片:


    // convert flower.jpg -rotate 45 flower_rotate45.jpg
    $resource = NewMagickWand();
    MagickReadImage( $resource, 'small_flower.jpg' );
    MagickRotateImage( $resource, null, 45 );
    header( 'Content-Type: image/gif' );
    MagickEchoImageBlob( $resource );
Nach dem Login kopieren

调整大小:


    // convert flower_original.jpg -resize 640×480 flower.jpg
    $resource = NewMagickWand();
    MagickReadImage( $resource, 'small_flower.jpg' );
    MagickResizeImage( $resource, 100, 100, MW_QuadraticFilter, 1.0 );
    header( 'Content-Type: image/gif' );
    MagickEchoImageBlob( $resource );
Nach dem Login kopieren

锐化:


    // convert flower.jpg -unsharp 1.5×1.0+1.5+0.02 flower_unsharp.jpg
    $resource = NewMagickWand();
    MagickReadImage( $resource, 'small_flower.jpg' );
    MagickUnsharpMaskImage( $resource, 1.5, 1.0, 1.5, 0.02 );
    header( 'Content-Type: image/gif' );
    MagickEchoImageBlob( $resource );
Nach dem Login kopieren

 

相关链接

MagickWand For PHP (Windows+Patch)
MagickWand For PHP Manual
MagickWand for PHP/Windows (php_magickwand_q16_st.dll)

 

另附:

ImageMagick和magickwand是什么?如何加装?

ImageMagick是一个用于图象处理的程序
可以运行在windows下和linux下
他的功能非常强大
能进行大小、格式、水印、标签等各种图象处理
比如在Linux下执行convert --help
即可查看ImageMagick的一部分功能说明

在PHP程序中,也可以调用这个ImageMagick程序
但是,调用的形式是通过php的module来实现的
这个module的名称叫做magickwand
很多程序员改用magickwand而不再使用php内置的gd图象函数库

ImageMagick功能非常强大,并且在Linux的发行版的光盘中都包含了安装的rpm
但是系统上自带的ImageMagick的版本通常很老,无法和magickwand共存
所以只能自行安装一个新的
而编译magicwand也是比较复杂的
下边会详细讲述

环境准备
------------------------
编译php的magickwand模块环境上必须本身已经装有php
(因为一会要用php里边的phpize程序)
下载最新版的ImageMagick(版本大于6.2)
这是因为Redhat自带的版本是5.x,不能搭配magickwand使用
所以只能自己编译一个6.2.x版本来用了
并且,不光是开发环境需要这个包,在实际运行的服务器上
也要手工编译一个ImageMagick-6.2.x版本才可以。
从ImageMagick的官方站下载源码包(用google的搜索第一项就是官方站)
解压缩后配置安装
./configure
LDFLAGS="-L/usr/lib" CPPFLAGS="-I/usr/include"
--prefix=/usr/local/ImageMagick
--enable-shared
--enable-lzw
make
make install
则6.2版本的ImageMagick安装完成

下载
------------------------
从magickwand的官方站下载源码包(用google的搜索第一项就是官方站)
从php.net下载php源码
将php源码解压缩,把magickwand也解压缩,放到php源码下的ext/目录下
例如/root/php-4.4.2/ext/magickwand

整合Module
------------------------
为什么要整合module?这是因为php内置的图象处理函数库是gd,而不是magickwand
在php的配置脚本中根本看不到
比如到php的源码根目录下,例如:
cd /root/php-4.4.2
执行./configure --help | grep magickwand
可以发现根本搜索不到magickwand的有关信息
所以直接编译是不能获得magickwand模块支持的
所以,需要手工把magickwand的源代码添加到php的source tree
并且重新生成configure脚本,然后再编译

进入目录cd /root/php-4.4.2/ext/magickwand
执行phpize
phpize这个命令是包含在php包本身里边的,如果这台机器没装过php,这没法执行这个命令
(这就是为什么要把程序放在已经安装了php的服务器上编译的原因)
然后退回到php的源码根路径
cd /root/php-4.4.2
删除老的configure文件
rm ./configure
生成新的configure文件
./buildconf --force
这个时候在php源码目录下,一个新的configure脚本诞生了
用这个脚本去配置编译php,才能开启magickwand模块
执行./configure --help | grep magickwand可以看到:
--with-magickwand=DIR Include Magickwand support
这说明现在进行php的配置编译,就可以启用这个模块了

配置编译
------------------------
现在配置php,使用参数:
./configure
--enable-shared
--with-magickwand=shared,/usr/local/ImageMagick
--enable-module=shared,magickwand
这里使用enable-module方式是为了获取so模块文件,便于给其他服务器加装
然后编译
make
等待几分钟即可完成了

获取模块
------------------------
然后就可以去php的源码目录中找刚才编译出来的so文件了
find /root/php-4.4.2 -name 'magickwand.so'
把这个文件copy出来,即可放置到别的服务器上使用了
cp ./module/magickwand.so /root

生产环境上安装
------------------------
在实际运行的服务器上,要先按照前边所述的方法
编译一个6.2.x版本的ImageMagick并安装到服务器上
然后把magickwand.so复制到php的模块目录里边
比如对应as4版本的php:/usr/local/php4/lib/php
然后在php.ini加入extenstion=magickwand.so
比如对应as4的版本的php.ini在/usr/local/php4/etc/php.ini
保存退出即可,无须重新启动任何服务。


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So überprüfen Sie, welche Erweiterungen in PHP verwendet werden So überprüfen Sie, welche Erweiterungen in PHP verwendet werden Aug 01, 2023 pm 04:13 PM

Sie können überprüfen, welche Erweiterungen von PHP verwendet werden, indem Sie die Ausgabe der Funktion phpinfo() anzeigen, Befehlszeilentools verwenden und die PHP-Konfigurationsdatei überprüfen. 1. Sehen Sie sich die Ausgabe der Funktion phpinfo() an, erstellen Sie ein einfaches PHP-Skript, speichern Sie dieses Skript als phpinfo.php und laden Sie es auf Ihren Webserver hoch. Suchen Sie einfach nach dem Schlüsselwort „extension“ oder „extension_loaded“ auf der Seite, um Informationen über die Erweiterung zu finden.

So erweitern Sie PDO mit PHP, um eine Verbindung zur Oracle-Datenbank herzustellen So erweitern Sie PDO mit PHP, um eine Verbindung zur Oracle-Datenbank herzustellen Jul 29, 2023 pm 07:21 PM

So erweitern Sie PDO mit PHP, um eine Verbindung zur Oracle-Datenbank herzustellen. Einführung: PHP ist eine sehr beliebte serverseitige Programmiersprache und Oracle ist ein häufig verwendetes relationales Datenbankverwaltungssystem. In diesem Artikel wird erläutert, wie Sie mithilfe der PHP-Erweiterung PDO (PHPDataObjects) eine Verbindung zur Oracle-Datenbank herstellen. 1. Installieren Sie die PDO_OCI-Erweiterung. Um eine Verbindung zur Oracle-Datenbank herzustellen, müssen Sie zunächst die PDO_OCI-Erweiterung installieren. Hier sind die Schritte zum Installieren der PDO_OCI-Erweiterung: Stellen Sie sicher

So erweitern Sie die Berichtserstellungsfunktionalität von SuiteCRM mit PHP So erweitern Sie die Berichtserstellungsfunktionalität von SuiteCRM mit PHP Jul 19, 2023 am 10:27 AM

So erweitern Sie mit PHP die Berichtserstellungsfunktion von SuiteCRM SuiteCRM ist ein leistungsstarkes Open-Source-CRM-System, das umfangreiche Funktionen bietet, um Unternehmen bei der Verwaltung von Kundenbeziehungen zu unterstützen. Eine der wichtigen Funktionen ist die Berichterstellung. Mithilfe von Berichten können Unternehmen ihre Geschäftssituation besser verstehen und richtige Entscheidungen treffen. In diesem Artikel wird erläutert, wie Sie mit PHP die Berichtsgenerierungsfunktion von SuiteCRM erweitern und relevante Codebeispiele bereitstellen. Bevor Sie beginnen, müssen Sie sicherstellen, dass SuiteCRM installiert ist.

Erste Schritte mit PHP: Installation der PHP-Erweiterung Erste Schritte mit PHP: Installation der PHP-Erweiterung May 20, 2023 am 08:49 AM

Bei der Entwicklung mit PHP müssen wir möglicherweise einige PHP-Erweiterungen verwenden. Diese Erweiterungen können uns mehr Funktionen und Tools zur Verfügung stellen und unsere Entwicklungsarbeit effizienter und komfortabler machen. Bevor wir diese Erweiterungen verwenden können, müssen wir sie jedoch zunächst installieren. In diesem Artikel erfahren Sie, wie Sie PHP-Erweiterungen installieren. 1. Was ist eine PHP-Erweiterung? PHP-Erweiterungen beziehen sich auf Komponenten, die der Programmiersprache PHP zusätzliche Funktionen und Dienste bereitstellen. Diese Komponenten können über den Erweiterungsmechanismus von PHP installiert und verwendet werden. Die PHP-Erweiterung kann uns dabei helfen

Wie verwende ich die GeoIP-Erweiterung von PHP? Wie verwende ich die GeoIP-Erweiterung von PHP? Jun 01, 2023 am 09:13 AM

PHP ist eine beliebte serverseitige Skriptsprache, die dynamische Inhalte auf Webseiten verarbeiten kann. Mit der Geoip-Erweiterung für PHP können Sie Informationen über den Standort des Benutzers in PHP abrufen. In diesem Artikel erfahren Sie, wie Sie die Geoip-Erweiterung von PHP verwenden. Was ist die GeoIP-Erweiterung für PHP? Die GeoIP-Erweiterung für PHP ist eine kostenlose Open-Source-Erweiterung, mit der Sie Daten über IP-Adressen und Standortinformationen abrufen können. Diese Erweiterung kann mit der GeoIP-Datenbank verwendet werden, einer von MaxMin entwickelten Datenbank

PHP-Erweiterung und PHP-Versionsverwaltung von Pagoda Panel PHP-Erweiterung und PHP-Versionsverwaltung von Pagoda Panel Jun 21, 2023 am 08:49 AM

Pagoda Panel ist ein Open-Source-Serververwaltungspanel, das Website-Betreibern bequeme Website-Verwaltung, Datenbankverwaltung, SSL-Zertifikatsverwaltung und andere Dienste bietet, aber auch leistungsstarke PHP-Erweiterungs- und PHP-Versionsverwaltungsfunktionen bietet, die die Serververwaltung einfacher und einfacher machen effizient. 1. PHP-Erweiterung PHP-Erweiterung ist ein Modul zur Verbesserung von PHP-Funktionen. Durch die Installation von PHP-Erweiterungen können weitere Funktionen und Dienste implementiert werden, wie zum Beispiel: Accelerator: Accelerator kann die PHP-Leistung erheblich verbessern und die Dienstlast durch Zwischenspeichern von PHP-Skripten reduzieren.

Eingehende Untersuchung der PHP-Erweiterungsentwicklung: Entdecken Sie die Geheimnisse hinter den Kulissen der PHP-Erweiterungsentwicklung Eingehende Untersuchung der PHP-Erweiterungsentwicklung: Entdecken Sie die Geheimnisse hinter den Kulissen der PHP-Erweiterungsentwicklung Feb 19, 2024 pm 11:40 PM

Die Entwicklung von PHP-Erweiterungen ist die Kunst, benutzerdefinierte Funktionen zu erstellen, die PHP-Kernfunktionalität zu erweitern und leistungsfähigere Anwendungen zu erstellen. Es eröffnet neue Möglichkeiten in der PHP-Welt und ermöglicht es Entwicklern, die grundlegenden Einschränkungen der Sprache zu überwinden. Dieser Artikel nimmt Sie mit auf eine Reise durch die Entwicklung von PHP-Erweiterungen und vermittelt Ihnen umfassendes Wissen und praktische Anleitungen von grundlegenden Konzepten bis hin zu fortgeschrittenen Techniken. Grundlagen der Entwicklung von PHP-Erweiterungen Bevor Sie mit der Entwicklung von PHP-Erweiterungen beginnen, müssen Sie einige grundlegende Konzepte verstehen. Was sind PHP-Erweiterungen? Eine PHP-Erweiterung ist eine Dynamic Link Library (DLL), die die PHP-Kernfunktionalität erweitert und neue Datentypen, Funktionen und Klassen bereitstellt. Vorteile von PHP-Erweiterungen PHP-Erweiterungen bieten viele Vorteile, darunter Skalierbarkeit, Flexibilität, Leistungsoptimierung und Code-Wiederverwendung. PHP

Vollständiges Tutorial: So verwenden Sie die PHP-Erweiterung GdImage zur Bildgenerierung Vollständiges Tutorial: So verwenden Sie die PHP-Erweiterung GdImage zur Bildgenerierung Jul 28, 2023 am 11:41 AM

Vollständiges Tutorial: Verwendung der PHP-Erweiterung GdImage zur Bildgenerierung Einführung: Die Bildgenerierung ist eine häufige Anforderung bei der Website-Entwicklung. Generieren Sie beispielsweise Bestätigungscodes, Miniaturansichten, grafische Statistiken und mehr. PHP bietet viele Erweiterungsbibliotheken für die Bildverarbeitung, eine der am häufigsten verwendeten ist GdImage. In diesem Tutorial wird detailliert beschrieben, wie Sie die GdImage-Erweiterung zum Generieren von Bildern verwenden, und es werden relevante Codebeispiele bereitgestellt. Schritt 1: Installieren Sie die GdImage-Erweiterung. Um die GdImage-Erweiterung verwenden zu können, müssen Sie zunächst sicherstellen, dass die Erweiterung installiert ist.

See all articles