利用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 相关文章推荐
BBS(php &amp; mysql)完整版(二)
Oct 09 PHP
IStream与TStream之间的相互转换
Aug 01 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
PHP加密解密字符串汇总
Apr 26 PHP
php使用GD实现颜色渐变实例
Jun 02 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
Nov 23 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
May 04 PHP
PHP实现QQ快速登录的方法
Sep 28 PHP
swoole和websocket简单聊天室开发
Nov 18 PHP
使用XHProf查找PHP性能瓶颈的实例
Dec 13 PHP
php/JS实现的生成随机密码(验证码)功能示例
Jun 06 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
Feb 23 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
php empty() 检查一个变量是否为空
2011/11/10 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
基于jquery的拖动布局插件
2011/11/25 Javascript
document.all的一个比较完整的总结及案例
2013/01/31 Javascript
js将控件隐藏的方法及display属性介绍
2013/07/04 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
JavaScript实现更改网页背景与字体颜色的方法
2015/02/02 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
浅谈js的异步执行
2016/10/18 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
js学习总结之DOM2兼容处理顺序问题的解决方法
2017/07/27 Javascript
Angularjs中ng-repeat的简单实例
2017/08/25 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
微信小程序开发摇一摇功能
2019/11/22 Javascript
wxpython学习笔记(推荐查看)
2014/06/09 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
python 二分查找和快速排序实例详解
2017/10/13 Python
numpy中的ndarray方法和属性详解
2019/05/27 Python
Django如何在不停机的情况下创建索引
2020/08/02 Python
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
澳大利亚波希米亚风时尚品牌:Tree of Life
2019/09/15 全球购物
后勤采购员岗位职责
2013/12/19 职场文书
军训自我鉴定范文
2014/02/13 职场文书
机关作风建设整改方案
2014/10/27 职场文书
离婚协议书格式
2014/11/21 职场文书
导盲犬小Q观后感
2015/06/11 职场文书
创业计划书之面包店
2019/09/12 职场文书
MySQL学习之基础操作总结
2022/03/19 MySQL