ホームページ > バックエンド開発 > PHPチュートリアル > PHPを使ってIDカードの表と裏を1枚の写真に合成する方法を詳しく解説

PHPを使ってIDカードの表と裏を1枚の写真に合成する方法を詳しく解説

*文
リリース: 2023-03-19 06:32:02
オリジナル
3171 人が閲覧しました

PHP で ID カードの表と裏を 1 つの写真に結合するにはどうすればよいですか?この記事では、PHP で ID カードの表と裏の写真を 1 つの写真に結合する方法を紹介します。また、必要な友達がそれを参照できるように、写真にカスタムの透かしを追加することもできます。お役に立てれば幸いです。

具体的なコードは次のとおりです。前部はヌードルコードで、後部は繰り返し使用しやすいようにシールされた機能です。この関数にはあまり多くのパラメータを与えたくないため、関数の前のコメントに注意してください。一部の設定項目は関数内にハードコーディングされています。

<?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を使ってIDカードの表と裏を1枚の写真に合成する方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート