>  기사  >  백엔드 개발  >  PHP를 사용하여 신분증의 앞면과 뒷면을 하나의 사진으로 합치는 방법에 대한 자세한 설명

PHP를 사용하여 신분증의 앞면과 뒷면을 하나의 사진으로 합치는 방법에 대한 자세한 설명

*文
*文원래의
2018-01-03 09:43:573125검색

PHP에서 ID 카드의 앞면과 뒷면을 하나의 사진으로 결합하는 방법은 무엇입니까? 이 글에서는 PHP에서 신분증의 앞면과 뒷면 사진을 하나의 사진으로 합치는 방법을 소개합니다. 사진에 사용자 정의 워터마크를 추가하여 도움이 필요한 친구들도 참고할 수 있습니다. 그것이 모두에게 도움이 되기를 바랍니다.

구체적인 코드는 다음과 같습니다. 앞면은 국수코드, 뒷면은 반복 사용이 용이하도록 밀봉된 기능입니다. 함수 앞의 주석에 주의하세요. 이 함수에 너무 많은 매개변수를 제공하고 싶지 않기 때문에 일부 구성 항목이 함수에 하드 코딩되어 있습니다.

<?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, &#39;./&#39;.time().".jpg");
imagedestroy($dst);

echo &#39;ok&#39;;
*/


$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(&#39;./webui/member/images/sfz-blank.jpg&#39;); //空白图片地址,用于打底
  $path_wp = realpath(&#39;./webui/member/images/sfz-wp.png&#39;); //水印图片地址
  $path_save = &#39;./Upload/sfz/&#39;; //保存路径

  //导入四张图片
  $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 이미지 처리 클래스

php 이미지 썸네일 생성 코드(png 투명도 지원)

PHP 파일 업로드에 Alibaba Cloud OSS 사용

위 내용은 PHP를 사용하여 신분증의 앞면과 뒷면을 하나의 사진으로 합치는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.