当前位置:首页 > PHP教程 > 正文内容

如何通过imagick让PHP生成PSD文件缩略图(实例)_php教程,imagick

搜教程4年前 (2020-01-22)PHP教程149

利用php实现读取excel中的图片_php教程

要实现读取excel中的图片,可以通过phpspreadsheet来实现。phpspreadsheet是一个纯php编写的库,并 引入了命名空间、PSR规范等。

ImageMagick是一套功能强大、稳定而且免费的工具集和开发包,可以用来读、写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等格式。利用ImageMagick,你可以根据web应用程序的需要动态生成图片, 还可以对一个(或一组)图片进行改变大小、旋转、锐化、减色或增加特效等操作,并将操作的结果以相同格式或其它格式保存。

通过imagick让PHP生成PSD文件缩略图

第一步、安装ImageMagick

首先需要安装 ImageMagick ,因为 imagick 是一个可以供 PHP 调用 ImageMagick 功能的PHP扩展。(目前最新版本是:ImageMagick-6.8.9-5-Q16-x64-dll.exe)

安装目录不能有空格,我个人是安装在 C 盘根目录:

C:\ImageMagick

一路默认安装即可,安装完毕后打开 CMD 命令行界面,输入:convert ,并按回车,如果能看到一大堆的内容则表示安装成功。

如果提示“ convert 不是内部或外部命令,也不是可运行的程序或批处理文件”或者提示“请输入转换的盘符”( convert 是一个默认的将 FAT32 转换到 NTFS 的系统命令)那么你需要自己将 ImageMagick 的安装路径添加到系统路径。

我的电脑 -> 单击右键 -> 属性 -> 高级 -> 环境变量 -> 系统变量 -> 找到“Path” -> 选中并点击进行编辑 -> 把你的安装路径添加进去。

第二步、安装imagick

点击这里下载,注意下载的时候要下对应的 PHP 版本,同时注意系统是32位还是64位,以及 PHP 是 NTS 版还是 TS 版(目前最新稳定版是 3.1.2 ,关于如何判断 PHP 是 NTS 版还是 TS 版,可通过 phpinfo 查看其中的 Thread Safety 项,如果是 enabled 就代表是 TS 版,否之则就是 NTS 版)

将下载的压缩包解压,找到 php_imagick.dll 文件,把它放到 PHP 的扩展目录里,然后打开 php.ini 文件,在对应的位置添加以下一行:

extension=php_imagick.dll

保存退出后并重启电脑,确保生效。

实例详解php cookie与session会话基本用法_php教程

cookie是Web服务器发送给浏览器的一块信息,浏览器会在本地文件中给每一个Web服务器存储cookie;session是另一种记录客户状态的机制,不同的是cookie保存在客户端浏览器中,而session保存在服务器上。

如果未生效,则将压缩包里所有「CORE_RL_*.dll」文件复制到 php 根目录,如:D:\php5.6

第三步、检查

如果一切正常,重启后在 phpinfo 里应该能看到 imagick 项,如:

如果找不到,则返回第一步,更换不同版本的 ImageMagick 重新安装并重新调试。

第四步、测试

OK,到这一步可以开始编写代码了,过程就不细说了,直接上代码

error_reporting(E_ERROR | E_WARNING);
 
$im = new Imagick('1.psd');
$im->setImageIndex(0);
$im->setIteratorIndex(0);
$im->stripImage(); //去除图片信息
$im->setImageCompressionQuality(80); //图片质量
$im->writeImage('1.jpg');

以上代码已经经过测试可以正确生成出一张 1.jpg 的图片。

建议缩略图还是以 jpg 格式,因为 png 格式不支持压缩,我在测试的时候使用 30M 的 PSD 文件,生成出来的 png 缩略图有 3M 多,而 jpg 只有 200KB 左右,并且生成 png 图片的速度明显很慢,大概需要3,4秒。

另外还做了极端测试,用了一近 600M 的 PSD 文件生成 jpg 缩略图,速度基本在2秒内,文件大小不到 2.5M ,由于并未对图片进行尺寸的修改,所以最终生成文件的体积可以根据实际情况再减小。

第五步、其它格式

除了 PSD 文件,我还另外尝试了一些其它格式,比如 MP4 、AVI 等视频格式,但生成速度超级慢。最后发现比较实用的就是生成 PDF 文件的缩略图,但处理 PDF 文件前,需要安装 Ghostscript ,然后整体的代码基本和生成 PSD 的代码一样

$im = new Imagick();
$im->readImage('D:/soft/wamp/www/test/1.pdf[0]');
//echo $im->getNumberImages();
$im->writeImages('D:/soft/wamp/www/test/1.jpg', false);

更多php相关知识,请访问php教程!

以上就是如何通过imagick让PHP生成PSD文件缩略图(实例)的详细内容,更多请关注ki4网其它相关文章!

一文搞懂PHP类和对象、抽象类、接口_php教程

本文主要介绍PHP中的类、对象、抽象类以及接口的概念和使用方法,初学PHP的小伙伴一定不要错过!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16984.html

标签: imagick
分享给朋友:

“如何通过imagick让PHP生成PSD文件缩略图(实例)_php教程,imagick” 的相关文章

PHP7更新及机能优化的引见(图文)【php教程】,PHP7

PHP7更新及机能优化的引见(图文)【php教程】,PHP7

本篇文章给人人带来的内容是关于PHP7更新及机能优化的引见(图文),有肯定的参考价值,有须要的朋侪可以参考一下,愿望对你有所协助。 PHP7刷新与机能优化 有幸介入2015年的PHP手艺峰会(PHPCON),听了鸟哥(惠新宸)的关于PHP7的新特征和机能优化的分享,一切都使人觉得冲动。鸟哥是...

php dirname函数怎样用【php教程】,dirname函数

php dirname函数怎样用【php教程】,dirname函数

php dirname()函数返回途径中的目次部份,其语法是dirname(path),参数path是必须,指规定要搜检的途径。 php dirname函数怎样用? php dirname()函数 语法 作用:返回途径中的目次部份。 语法: dirname(path) 参数:...

Nginx的设置详解(附代码)【php教程】,php,配置,nginx

本篇文章给人人带来的内容是关于Nginx的设置详解(附代码),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 经常运用设置项 在事情中,我们与 Nginx 打交道更多的是经由历程其设置文件来举行。那末控制这些设置项各自的作用就很有必要了。 起首,nginx.conf 的内容通常...

PHP完成多继续的trait语法的引见(代码示例)【php教程】,PHP

本篇文章给人人带来的内容是关于PHP完成多继续的trait语法的引见(代码示例),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 PHP没有多继续的特征。即使是一门支撑多继续的编程言语,我们也很少会运用这个特征。在大多数人看来,多继续不是一种好的设想要领。 然则开辟中用到多继...

怎样猎取PDO对象并设置属性?(代码详解)【php教程】,PDO获取对象

怎样猎取PDO对象并设置属性?(代码详解)【php教程】,PDO获取对象

与任何其他数据库扩大一样,PDO能够直接从所选数据建立现有类的实例。然则,与其他扩大差别的是,PDO为壮大而天真的对象操纵供应了很多特征。 猎取单个对象 要从查询效果建立单个对象,有两种要领。 1.运用熟习的fetch()要领: class User {}; $stmt = $pdo...

mac下怎样举行php7.1 memcache扩大的装置【php教程】,php,mac,扩展

本篇文章给人人带来的内容是引见在mac下装置php7.1 memcache扩大的要领,有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。 1、下载memcache源代码文件 https://github.com/websupport-sk/pecl-memcache/archiv...