我的编程空间,编程开发者的网络收藏夹
学习永远不晚

PHP+ImageMagick如何将PDF转成图片

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

PHP+ImageMagick如何将PDF转成图片

这篇文章将为大家详细讲解有关PHP+ImageMagick如何将PDF转成图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

                           

ImageMagick安装

ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布,它遵守GPL许可协议,可以运行于大多数的操作系统,ImageMagick的大多数功能的使用都来源于命令行工具。

PHP中要使用ImageMagick,需要安装imagick扩展,imagickgd扩展类似,主要用于图像处理,但是imagick的功能更强大。下面简单介绍imagick在两种常用环境中的安装方法。

CentOS 7中安装

在CentOS中可以直接使用Yum进行安装,除了安装ImageMagick,还要安装它的两个依赖ImageMagick-develImageMagick-perl

yum install -y ImageMagick ImageMagick-devel ImageMagick-perl

接着使用pecl安装扩展。找到PHP安装目录下的pecl,例如PHP安装在/usr/local/php74目录中,则pecl一般在/usr/local/php74/bin目标中,执行命令:

/usr/local/php74/bin/pecl install imagick

即可使用pecl自动下载并安装ImageMagick,最后在php.ini中添加

extension=imagick.so

即可启用扩展。

如果你需要检查一下扩展有没有安装成功,可以执行一下命令

php -m|grep imagick

如果输出imagick,说明扩展安装成功。


题外话 :如果你不知道PHP使用的是哪个php.ini配置文件,可以执行一下以下命令

php74 -i|grep ini

找到”Loaded Configuration File”那行,就知道PHP使用的是哪个配置文件了。php -i命令
作用类似于我们使用phpinfo()函数查看PHP的相关信息。


Docker安装

容器中的PHP安装扩展,推荐使用Github上的docker-php-extension-installer,这是一个Shell脚本,可以帮我们解决扩展的依赖问题,安装扩展后还会自动清除没用的文件。我们只需要在Dockerfile中加入这个脚本即可,下面是官方的示例:

FROM php:7.2-cli# 从Github上下载docker-php-extension-installer脚本ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/# 添加可执行权限并安装扩展RUN chmod +x /usr/local/bin/install-php-extensions && \    install-php-extensions gd xdebug imagick

这样构建出来的镜像就安装好所需要的扩展了。


题外话:在国内网络环境下,使用docker-php-extension-installer安装扩展经常会出现超时问题,建议使用外网的VPS构建镜像,上传到DockerHub或者其它私有仓库后,再拉到本地网络使用。可使用便宜的良心云,或者Vultr这种支持按时计费的VPS。


PDF转图片

代码示例:

// 实例化imagick对象$im = new imagick();$im->setResolution(150, 150);$im->setCompressionQuality(100);$im->readImageBlob($fileContent);$im->setImageFormat('jpg');$im->setImageBackgroundColor('white');$im->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);$im->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);header("Content-type: image/jpeg");echo $im->getImageBlob();

代码解读:

$im->setResolution(150, 150);

用于设置图像的分辨率。这个函数并不改变图像的实际分辨率,只是在读取或创建图像之前将其设置在Imagick对象中,这个函数需要在读取图像或创建图像之前调用。
这个函数接收两个参数,分别是横向分辨率和纵向分辨率,默认值是72*72。为了保持图像的宽高比,这两个参数值应该一样,默认值转换出来的图像不够清晰,建议使用两倍或三倍值,但同时图片的大小也会变大。


$im->setCompressionQuality(100);

设置图像的压缩质量,默认值为0;传入的参数值应为1-100,对于JPG格式图片,值越小,图像体积越小,同时清晰度也较低;但是对于PNG图片,这个结论貌似不成立,当值小于90时,图片体积反而越大,所以在转换为PNG图片格式时,保持默认值即可。


$im->readImageBlob($fileContent);

直接加载PDF文件的二进制内容,也可以使用readImage($filename)函数读取保存好的PDF文件。


$im->setImageFormat('jpg');

设置要生成的图像的格式,如jpg,png等,


$im->setImageBackgroundColor('white');$im->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);$im->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);

设置图像背景色为白色,去掉图像的alpha通道,将所有图像合并为一层,如果不执行这些操作,转换出来的图像背景会是黑色的,如下图:

PHP+ImageMagick如何将PDF转成图片


header("Content-type: image/png");echo $im->getImageBlob();

获取转换生成图像的二进制数据,输出到客户端供下载;如果需要保存到文件,可以使用writeImage($filename)函数。

php有什么特点

1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流与非主流的数据库。4、面向对象编程:PHP提供了类和对象。5、版本更新速度快。6、具有丰富的功能。7、可伸缩性。8、功能全面,包括图形处理、编码与解码、压缩文件处理、xml解析等。

关于“PHP+ImageMagick如何将PDF转成图片”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

PHP+ImageMagick如何将PDF转成图片

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

PHP+ImageMagick如何将PDF转成图片

这篇文章将为大家详细讲解有关PHP+ImageMagick如何将PDF转成图片,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 ImageMagick安
2023-06-26

使用Python将PDF转换成图片

必须在Linux环境下,使用到的环境和工具:CentOS7+Python3.6+pdf2image+poppler        首先要在系统中安装poppler,这是一个用于呈现可移植文档格式(PDF)文档的免费软件实用程序库一、安装po
2023-01-31

php如何将html转换成pdf

php将html转换成pdf的方法:【function genBillPdfContent($htmlContent) {$mpdf = new \Mpdf\Mpdf();$mpdf->SetDisplayMode('fullpa...】。
2021-02-24

php如何将内容转换成图片

这篇文章主要介绍php如何将内容转换成图片,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php将内容转换成图片的方法:1、通过正则提取出dataurl存储所需的数据,然后直接展示在页面上;2、用substr和strp
2023-06-20

Java如何实现将PDF转为图片格式

本文小编为大家详细介绍“Java如何实现将PDF转为图片格式”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java如何实现将PDF转为图片格式”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。代码编译环境Intel
2023-07-05

如何将HTML转换成PDF

HTML转换成PDF:工具、用途、优缺点HTML(Hypertext Markup Language)是一种标记语言,用于创建和排版网页等电子文档。而PDF(Portable Document Format)则是由Adobe公司开发的一种电子文档格式,具有跨平台、可编辑、保护性等优点。那么,如何将HTML转换成PDF呢?本文将从工具、用途、优缺点三个方面进行介绍。一、工具有许多
2023-05-14

php将图片的base64串 转成 图片文件

要将图片的base64串转成图片文件,可以使用以下代码:```php// 获取base64串$base64_string = '...'; // 替换成实际的base64串// 获取文件扩展名$matches = [];preg_match
2023-09-13

php如何将ppt转jpg图片

本篇内容介绍了“php如何将ppt转jpg图片”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PHP将ppt转成图片查看PHP安装COM组件1
2023-06-20

vue如何将页面转成图片

这篇文章主要介绍了vue如何将页面转成图片的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue如何将页面转成图片文章都会有所收获,下面我们一起来看看吧。随着前端开发的快速发展,现在越来越多的人开始注重如何将前端
2023-07-05

php如何将word文档转成PDF文件

本文小编为大家详细介绍“php如何将word文档转成PDF文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何将word文档转成PDF文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。第一步:安装和配置
2023-07-05

php中怎么将jpg图片转换成png图片

这篇文章将为大家详细讲解有关php中怎么将jpg图片转换成png图片,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。php jpg转换成png图片的方法:首先安装php扩展gd和exif;然后
2023-06-20

JAVA中如何使用openoffice将Excel转PDF再转图片功能

这篇文章主要为大家展示了“JAVA中如何使用openoffice将Excel转PDF再转图片功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JAVA中如何使用openoffice将Excel转
2023-06-22

PHP如何实现PDF转换成图片时保留字体颜色

这篇文章主要讲解了“PHP如何实现PDF转换成图片时保留字体颜色”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP如何实现PDF转换成图片时保留字体颜色”吧!一、为什么PDF转图片会改变字
2023-07-05

怎么在php中将图片转成base64

这篇文章将为大家详细讲解有关怎么在php中将图片转成base64,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。利用PHP将图片转换成base64编码的实现方法相信大家都知道Base64是网络
2023-06-15

php excel如何转换成pdf

这篇文章主要介绍“php excel如何转换成pdf”,在日常操作中,相信很多人在php excel如何转换成pdf问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php excel如何转换成pdf”的疑惑有所
2023-06-20

pdf如何转换成cad图纸

pdf转换成cad图纸步骤:1、选择合适的转换工具;2、将需要转换的PDF文件准备好;3、打开选择的转换工具,并在界面中找到“打开”或“导入”选项,然后选择要转换的PDF文件;4、在转换工具中,根据需要,调整这些选项以获得最佳的转换结果;5
2023-08-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录