PHP将身份证正反面两张照片合成一张图片的代码


Posted in PHP onApril 08, 2017

具体代码如下,前面部分是面条代码,后面是封了一个函数,便于反复使用。注意函数前面的注释说明,因为不想给这个函数搞太多参数,所以有一些配置项就写死在函数里面了。

<?php
/*
$dst_path = "sfz-blank.jpg";
$z_path = "./z.jpg";
$f_path = "./f.jpg";
$wp_path = "sfz-wp.png";

$dst = @imagecreatefromjpeg($dst_path);
$im_z = imagecreatefromjpeg($z_path);//返回图像标识符
$im_f = imagecreatefromjpeg($f_path);//返回图像标识符
$im_wp = imagecreatefrompng($wp_path);//返回图像标识符

list($z_width,$z_height,$z_type,$z_attr)=getimagesize($z_path);
list($f_width,$f_height,$f_type,$f_attr)=getimagesize($f_path);

//imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
imagecopyresized($dst,$im_z,10,10,0,0,580,360,$z_width,$z_height);//返回布尔值
imagecopyresized($dst,$im_f,10,380,0,0,580,360,$f_width,$f_height);//返回布尔值
imagecopyresized($dst,$im_wp,10,320,0,0,600,165,600,165);//返回布尔值

imagejpeg($dst, './'.time().".jpg");
imagedestroy($dst);

echo 'ok';
*/


$path_z = "./z.jpg";
$path_f = "./f.jpg";
echo makeSfzImage($path_z, $path_f);


/**
 * 通过身份证正面和背景照片,生成一图组合图片,并打上水印
 * 需要准备一张空白图片、一张水印图片,放在/webui/member/images/目录下,并在Upload目录下建sfz目录
 * @param string $path_z,正面
 * @param string $path_f,背面
 * @return string,生成后的照片路径,注意返回的格式是:./Upload/sfz/148909883.jpg
 *
 */
function makeSfzImage($path_z, $path_f){
  /*
  * 前面几项配置信息
  */
  $path_blank = realpath('./webui/member/images/sfz-blank.jpg'); //空白图片地址,用于打底
  $path_wp = realpath('./webui/member/images/sfz-wp.png'); //水印图片地址
  $path_save = './Upload/sfz/'; //保存路径

  //导入四张图片
  $im_blank = @imagecreatefromjpeg($path_blank);
  $im_z = @imagecreatefromjpeg($path_z);//返回图像标识符
  $im_f = @imagecreatefromjpeg($path_f);//返回图像标识符
  $im_wp = @imagecreatefrompng($path_wp);//返回图像标识符

  //获取正反图片的宽高
  list($z_width,$z_height,$z_type,$z_attr)=getimagesize($path_z);
  list($f_width,$f_height,$f_type,$f_attr)=getimagesize($path_f);

  //imagecopyresized ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
  //组合
  imagecopyresized($im_blank,$im_z,10,10,0,0,580,360,$z_width,$z_height);//返回布尔值
  imagecopyresized($im_blank,$im_f,10,380,0,0,580,360,$f_width,$f_height);//返回布尔值
  imagecopyresized($im_blank,$im_wp,10,320,0,0,600,165,600,165);//返回布尔值

  //生成
  $path_file = $path_save.time().".jpg";
  imagejpeg($im_blank, $path_file);
  imagedestroy($im_blank);

  return $path_file;
}
?>

最前面的几个是图片配置参数,大家可以根据需要修改一下即可。

PHP 相关文章推荐
生成sessionid和随机密码的例子
Oct 09 PHP
PHP新手上路(三)
Oct 09 PHP
Ajax+PHP 边学边练之四 表单
Nov 27 PHP
php smarty模版引擎中变量操作符及使用方法
Dec 11 PHP
基于pear auth实现登录验证
Feb 26 PHP
fgetcvs在linux的问题
Jan 15 PHP
php+iframe实现隐藏无刷新上传文件
Feb 10 PHP
基于PHP读取csv文件内容的详解
Jun 18 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
Jul 28 PHP
PHP第三方登录―QQ登录实现方法
Feb 06 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
Feb 13 PHP
PHP实现文字写入图片功能
Feb 18 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 #PHP
yii框架无限极分类的实现方法
Apr 08 #PHP
PHP下载远程图片的几种方法总结
Apr 07 #PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 #PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 #PHP
php 根据自增id创建唯一编号类
Apr 06 #PHP
php及codeigniter使用session-cookie的方法(详解)
Apr 06 #PHP
You might like
15个小时----从修改程序到自己些程序
2006/10/09 PHP
无数据库的详细域名查询程序PHP版(3)
2006/10/09 PHP
使PHP自定义函数返回多个值
2006/11/26 PHP
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
jquery下操作HTML控件的实现代码
2010/01/12 Javascript
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
vue实现提示保存后退出的方法
2018/03/15 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
解决vue的过渡动画无法正常实现问题
2019/10/31 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
Python实现远程调用MetaSploit的方法
2014/08/22 Python
Python threading多线程编程实例
2014/09/18 Python
Python 列表list使用介绍
2014/11/30 Python
python 在某.py文件中调用其他.py内的函数的方法
2019/06/25 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
《长城》教学反思
2014/02/14 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
绘画专业自荐信
2014/07/04 职场文书
日语系毕业求职信
2014/07/27 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
SQL Server——索引+基于单表的数据插入与简单查询【1】
2021/04/05 SQL Server