利用php_imagick实现复古效果的方法


Posted in PHP onOctober 18, 2016

介绍

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

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/*.JPG'));
foreach($images as $image) {
// Providing 0 forces thumbnailImage to maintain aspect ratio
$image->thumbnailImage(1024,0);
}
$images->writeImages();
?>

3.缩略GIF动画图片

<?php
/* Create a new imagick object and read in GIF */
$im = new Imagick("example.gif");
/* Resize all frames */
foreach ($im as $frame) {
/* 50x50 frames */
$frame->thumbnailImage(50, 50);
/* Set the virtual canvas to correct size */
$frame->setImagePage(50, 50, 0, 0);
}/* Notice writeImages instead of writeImage */
$im->writeImages("example_small.gif", true);
?>

利用php_imagick实现复古效果的方法

先来看下效果图

利用php_imagick实现复古效果的方法
复古效果展示

要实现以上效果,我们先用Photoshop用以下步骤实现。

打开原图

新建图层,使用颜色#C0FFFF填充后,不透明度设为44%,图层混合模式为柔光

新建图层,使用颜色#000699填充后,不透明设置为48%,图层混合模式为排除

合并图层

用PHP代码,也就只需要按照以上步骤实现即可,代码如下:

//打开图片
$im = new Imagick('./hebe.jpg');
//新建图层,使用颜色`#C0FFFF`填充后,不透明度设为`44%`
$layer = new Imagick();
$layer->newImage($im->getImageWidth(), $im->getImageHeight(), '#C0FFFF');
$layer->setImageOpacity (0.44);
//叠加到原图上,图层混合模式为`柔光`
$im->compositeImage($layer, Imagick::COMPOSITE_SOFTLIGHT, 0, 0);
//新建图层,使用颜色`#000699`填充后,不透明设置为`48%`
$layer = new Imagick();
$layer->newImage($im->getImageWidth(), $im->getImageHeight(), '#000699');
$layer->setImageOpacity (0.48);
//叠加到原图上,图层混合模式为`排除` 
$im->compositeImage($layer, Imagick::COMPOSITE_EXCLUSION, 0, 0);
//完成!
$im->writeImage('./vintage.jpg');

总结

以上就是利用php_imagick实现复古效果的方法,文章通过示例代码介绍的还是很详细的,感兴趣的朋友们自己敲敲代码更能方便理解,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

PHP 相关文章推荐
几个学习PHP的网址
Nov 25 PHP
php调用mysql存储过程
Feb 14 PHP
PHP批量采集下载美女图片的实现代码
Jun 03 PHP
PHP批量上传图片的具体实现方法介绍.
Feb 26 PHP
PHP中spl_autoload_register()和__autoload()区别分析
May 10 PHP
php中eval函数的危害与正确禁用方法
Jun 30 PHP
PHP自动重命名文件实现方法
Nov 04 PHP
PHP CURL 内存泄露问题解决方法
Feb 12 PHP
php实现约瑟夫问题的方法小结
Mar 23 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 PHP
php修改数组键名的方法示例
Apr 15 PHP
php原生数据库分页的代码实例
Feb 18 PHP
php封装的page分页类完整实例
Oct 18 #PHP
php封装的单文件(图片)上传类完整实例
Oct 18 #PHP
Thinkphp实现短信验证注册功能
Oct 18 #PHP
php基于单例模式封装mysql类完整实例
Oct 18 #PHP
php封装的mysqli类完整实例
Oct 18 #PHP
PHP实现文件上传下载实例
Oct 18 #PHP
Yii实现文章列表置顶功能示例
Oct 18 #PHP
You might like
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
php递归删除指定文件夹的方法小结
2015/04/20 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
ThinkPHP 5.x远程命令执行漏洞复现
2019/09/23 PHP
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
使用console进行性能测试
2015/04/27 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
小程序日历控件使用方法详解
2018/12/29 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
python中如何使用正则表达式的非贪婪模式示例
2017/10/09 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
Python multiprocessing多进程原理与应用示例
2019/02/28 Python
解决Python import docx出错DLL load failed的问题
2020/02/13 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
python GUI库图形界面开发之PyQt5信号与槽基础使用方法与实例
2020/03/06 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
护理个人求职信范文
2014/01/08 职场文书
高中考试作弊检讨书
2014/01/14 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
导游欢迎词范文
2015/01/23 职场文书
独生子女证明范本
2015/06/19 职场文书
2015年中学体育教师工作总结
2015/10/23 职场文书
导游词之镇江西津古渡
2019/11/06 职场文书