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模板技术[转]
Jan 04 PHP
什么是MVC,好东西啊
May 03 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
php 保留字列表
Oct 04 PHP
php定时删除文件夹下文件(清理缓存文件)
Jan 23 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
php里array_work用法实例分析
Jul 13 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
Dec 01 PHP
thinkphp3.x中display方法及show方法的用法实例
May 19 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
May 29 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
适用于初学者的简易PHP文件上传类
2015/10/29 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
Javascript 实用小技巧
2010/04/07 Javascript
js鼠标左右键 键盘值小结
2010/06/11 Javascript
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
Position属性之relative用法
2015/12/14 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
Ajax异步获取html数据中包含js方法无效的解决方法
2017/02/20 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
微信小程序实现九宫格抽奖
2020/04/15 Javascript
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
vue elementui tree 任意级别拖拽功能代码
2020/08/31 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
Python的ORM框架SQLAlchemy入门教程
2014/04/28 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
python调试神器PySnooper的使用
2019/07/03 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
python 装饰器的基本使用
2021/01/13 Python
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
2014年三八妇女节活动总结
2014/03/01 职场文书
小学语文业务学习材料
2014/06/02 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
让生命充满爱观后感
2015/06/08 职场文书
使用css样式设计一个简单的html登陆界面的实现
2021/03/30 HTML / CSS
详解Redis瘦身指南
2021/05/26 Redis