php利用imagemagick实现复古老照片效果实例


Posted in PHP onFebruary 16, 2017

imagemagick介绍

imagemagick是图片处理软件,具有强大的图片处理能力。本文使用PHP调用imagemagick实现把图片处理为老照片效果。

imagemagick地址:www.imagemagick.org

imagemagick安装

需要安装imagemagick,安装方法如下:点击查看

使用imagemagick生成老照片效果,需要执行下面几个步骤

      1.将输入图像使用sepia-tone滤镜处理

      2.生成一个白色蒙版,填充随机噪声,转化为灰度,并加上alpha通道

      3.将步骤1和步骤2的结果使用overlay的方式compose

代码如下:

<?php
/**
 * php 调用imagemagick实现老照片效果 
 * Date: 2016-12-31
 * Author: fdipzone
 * Ver: 1.0
 */

/**
 * 调用imagemagick实现老照片效果
 * @param String $source 原图
 * @param String $dest 目的图
 */
function createOldPhoto($source, $dest){

 // 命令行
 $cmd = sprintf("convert '%s' -sepia-tone '75%%' \( '%s' -fill '#FFFFFF' -colorize '100%%' +noise Random -colorspace gray -alpha on -channel A -evaluate Set 100 \) -compose overlay -composite '%s'", $source, $source, $dest);

 // 执行命令
 exec($cmd);

}

// 原图
$source = dirname(__FILE__).'/source.jpg';

// 生成效果图
$dest = dirname(__FILE__).'/dest.jpg';

// 创建效果图
createOldPhoto($source, $dest);

// 显示原图与效果图比较
echo '<meta http-equiv="content-type" content="text/html;charset=utf-8">';
echo '<p>原图</p>';
echo '<p><img src="'.basename($source).'"></p>';

echo '<p>效果图</p>';
echo '<p><img src="'.basename($dest).'"></p>';

?>

原图与生成的老照片效果对比

php利用imagemagick实现复古老照片效果实例

总结

以上就是利用php调用imagemagick实现复古老照片效果的全部内容了,希望本文的内容对大家学习或者使用PHP能带来一定的帮助,如果有疑问大家可以留言交流。

PHP 相关文章推荐
php下HTTP Response中的Chunked编码实现方法
Nov 19 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
Feb 13 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
php实现的CSS更新类实例
Sep 22 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
php简单socket服务器客户端代码实例
May 18 PHP
Yii2实现让关联字段支持搜索功能的方法
Aug 10 PHP
Yii统计不同类型邮箱数量的方法
Oct 18 PHP
php自定义函数实现统计中文字符串长度的方法小结
Apr 15 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
php UNIX时间戳用法详解
Feb 16 #PHP
php计算多个集合的笛卡尔积实例详解
Feb 16 #PHP
php实现文件与16进制相互转换的方法示例
Feb 16 #PHP
php根据用户名和手机号查询是否存在手机号码
Feb 16 #PHP
php使用PDO执行SQL语句的方法分析
Feb 16 #PHP
php四种定界符详解
Feb 16 #PHP
php使用PDO获取结果集的方法
Feb 16 #PHP
You might like
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
PHP中PDO的错误处理
2011/09/04 PHP
php获取文件名后缀常用方法小结
2015/02/24 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
php7性能提升的原因详解
2019/10/13 PHP
JavaScript实现快速排序(自已编写)
2012/12/19 Javascript
javascript垃圾收集机制与内存泄漏详细解析
2013/11/11 Javascript
javascript删除option选项的多种方法总结
2013/11/22 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
老生常谈javascript的面向对象思想
2017/08/22 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
selenium+python实现自动化登录的方法
2018/09/04 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
wxpython自定义下拉列表框过程图解
2020/02/14 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
Python容器类型公共方法总结
2020/08/19 Python
python爬虫工具例举说明
2020/11/30 Python
美国珠宝网上商店:Jeulia
2016/09/01 全球购物
大整数数相乘的问题
2012/07/22 面试题
好家长事迹材料
2014/01/23 职场文书
优秀部门获奖感言
2014/02/14 职场文书
大学军训感言300字
2014/03/09 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
债务授权委托书范本
2014/10/17 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python