利用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模拟HTTP认证
Oct 09 PHP
php Memcache 中实现消息队列
Nov 24 PHP
php 用checkbox一次性删除多条记录的方法
Feb 23 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
PHP企业级应用之常见缓存技术篇
Jan 27 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
Apr 24 PHP
PHPThumb图片处理实例
May 03 PHP
简单实用的PHP防注入类实例
Dec 05 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
PHP中include/require/include_once/require_once使用心得
Aug 28 PHP
php获取访问者浏览页面的浏览器类型
Jan 23 PHP
php实现websocket实时消息推送
Mar 30 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
url decode problem 解决方法
2011/12/26 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
查看源码的工具 学习jQuery源码不错的工具
2011/12/26 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
详解webpack+express多页站点开发
2017/12/22 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
vue实现简单跑马灯效果
2020/05/25 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
Python开发的HTTP库requests详解
2017/08/29 Python
python实现定时自动备份文件到其他主机的实例代码
2018/02/23 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
英国床垫和床架购物网站:Bedman
2019/11/04 全球购物
乐高西班牙官方商店:LEGO Shop ES
2019/12/01 全球购物
教师专业理论水平的自我评价分享
2013/11/09 职场文书
教育局长自荐信范文
2013/12/22 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
孝敬父母的演讲稿
2014/05/14 职场文书
大学生个人学习总结
2015/02/15 职场文书
大学生学年个人总结
2015/02/15 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
任命书格式范文
2015/09/22 职场文书
小学生反邪教心得体会
2016/01/15 职场文书
python实现腾讯滑块验证码识别
2021/04/27 Python
python析构函数用法及注意事项
2021/06/22 Python
Python字典的基础操作
2021/11/01 Python
Python 视频画质增强
2022/04/28 Python