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 discuz 主题表和回帖表的设计
Mar 13 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
一步一步学习PHP(5) 类和对象
Feb 16 PHP
php数组函数序列之array_pop() - 删除数组中的最后一个元素
Nov 07 PHP
本地机apache配置基于域名的虚拟主机详解
Aug 10 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
Nov 13 PHP
discuz加密解密函数使用方法和中文注释
Jan 21 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
详解关于php的xdebug配置(编辑器vscode)
Jan 29 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
May 09 PHP
laravel 时间格式转时间戳的例子
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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
PHP中实现汉字转区位码应用源码实例解析
2010/06/14 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
9个经典的PHP代码片段分享
2014/12/18 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
微博@符号的用户名提示效果。(想@到谁?)
2010/11/05 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
json字符串之间的相互转换示例代码
2014/08/21 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
jQuery 中ajax异步调用的四种方式
2016/06/28 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
React中如何引入Angular组件详解
2018/08/09 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Python 随机生成中文验证码的实例代码
2013/03/20 Python
Python做文本按行去重的实现方法
2016/10/19 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
Python+logging输出到屏幕将log日志写入文件
2020/11/11 Python
H5 video poster属性设置视频封面的方法
2020/05/25 HTML / CSS
应急处置方案
2014/06/16 职场文书
大学生入党自荐书
2015/03/05 职场文书
答辩状格式范本
2015/05/22 职场文书
党员干部学习心得体会
2016/01/23 职场文书
初中历史教学反思
2016/02/19 职场文书
详解redis在微服务领域的贡献
2021/10/16 Redis
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js