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, './'.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 파일 업로드에 Alibaba Cloud OSS 사용
위 내용은 PHP를 사용하여 신분증의 앞면과 뒷면을 하나의 사진으로 합치는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!