php结合imagick 修改图片的DPI,达到和photoshop类似的效果
使用php修改图片的DPI,达到与ps类似的效果
安装好imagick扩展
- 进入扩展官网http://pecl.php.net/package/imagick,对应下载好imagick插件,配置到php中
- 配置扩展到php中,windows文章教程https://www.php.net/manual/zh/install.pecl.windows.php
- liunx教程,看这个https://www.php.net/manual/zh/install.pecl.pear.php
安装好Image Magick软件
- linux下载地址:https://imagemagick.org/archive/binaries/magick
- windows下载地址:https://imagemagick.org/archive/binaries/ImageMagick-7.1.1-11-Q16-HDRI-x64-dll.exe
- 配置好环境变量,方便其他程序进行调用
PHP使用imagick进行分辨率调整demo
- 这里说的分辨率是dpi,一般网路图片dpi为72或者96,不适合打印,适合打印的图片分辨率一般都是254,300,600等,主要看打印的机器,在ps中,我们可以方便的调整,而且能保持一定的图片质量,我们使用imagick也能达到和ps一样额效果
- 示例代码如下
$start = microtime(true);
$dpi = 300;
$im = new Imagick();
$res = $im->readImage('test.png');
// 1. 设置好调整的单位
$im->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
// 简单放大,不可取
//$im->scaleImage(3867, 0, false);
// 2. 将图片重新采样到所需的分辨率,图片会自动放大到对应dpi大小,同时设置图片dpi(效果同ps)
$im->resampleImage($dpi, $dpi, imagick::FILTER_UNDEFINED, 0);
echo "use time " . (microtime(true) - $start).PHP_EOL;
// 很多教程写了这个,这个单独用确实可以修改分辨率,但是图片质量达不到要求,也不会放大图片
// $im->setImageResolution($dpi, $dpi);
$im->writeImage('test300_4.png');
echo "use time " . (microtime(true) - $start);
总结
线上很多教程,感觉都没有讲清楚这个问题,特别记录下来,仅供参考。
软件版本:
windows
php 7.4.3 x64 nts
imagick.dll 3.7.0
ImageMagick-7.1.1-11-Q16-HDRI-x64-dll
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfiafec
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13