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介绍篇
Oct 26 PHP
php数据入库前清理 注意php intval与mysql的int取值范围不同
Dec 12 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
Jan 17 PHP
深入PHP5中的魔术方法详解
Jun 17 PHP
php 地区分类排序算法
Jul 01 PHP
php中利用str_pad函数生成数字递增形式的产品编号
Sep 30 PHP
ThinkPHP的URL重写问题
Jun 22 PHP
分享php邮件管理器源码
Jan 06 PHP
PHP读取CSV大文件导入数据库的实例
Jul 24 PHP
PHP树形结构tree类用法示例
Feb 01 PHP
PHP扩展Swoole实现实时异步任务队列示例
Apr 13 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 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 小乘法表实现代码
2009/07/16 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
JS比较两个时间大小的简单示例代码
2013/12/20 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
JavaScript中一个奇葩的IE浏览器判断方法
2014/04/16 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
用JS实现一个简单的打砖块游戏
2019/12/11 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
[46:47]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS NE
2014/05/22 DOTA
python numpy 显示图像阵列的实例
2018/07/02 Python
Python设计模式之备忘录模式原理与用法详解
2019/01/15 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
Pycharm简单使用教程(入门小结)
2019/07/04 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
Python (Win)readline和tab补全的安装方法
2019/08/27 Python
django 实现celery动态设置周期任务执行时间
2019/11/19 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
化工专业大学生职业生涯规划书
2014/01/14 职场文书
创意活动策划书
2014/01/15 职场文书
网站出售协议书范文
2014/10/10 职场文书
党员民主评议自我评价
2014/10/20 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
创业计划书之游泳馆
2019/09/16 职场文书