証明書写真 作成プログラム (確認用サンプル)

印画紙方向横(3072x2048)縦(2048x3072)
写真サイズ30mmx24mm(運転免許)40mmx30mm45mmx35mm(パスポート)50mmx40mm
オプションサイズを少しずつ大きくする 画像をダウンロードする
ファイル

送信可能なファイル:jpeg形式、500kBytes以下、縦横それぞれ100ピクセル以上1000ピクセル未満

このサイトはPHPスクリプトの確認用サイトです。不正利用を検知するため、IPアドレスを全て記録しています
あなたのIPアドレス

このPHPスクリプトの説明・配布ページに移動する / テスト用顔写真(Napoleon)をダウンロードする

500*1024) { disp_error_page("アップロード可能なファイルサイズは500kBytesです"); exit(); } if($_FILES["userfile"]["type"] !== 'image/jpeg') { disp_error_page("画像ファイル(JPEG形式)以外がアップロードされました"); exit(); } if(move_uploaded_file($_FILES["userfile"]["tmp_name"], $uploadfile) !== true) { disp_error_page("アップロードされたファイルの一時保存に失敗しました"); exit(); } // アップロードされた画像ファイルの縦横サイズ(ピクセル)を得る $size = getimagesize($uploadfile); // アップロードされた画像ファイルで許容されるピクセル数を下回る、超える場合はエラー if($size[0]<100 || $size[1]<100 || $size[0]>1000 || $size[1]>1000) { disp_error_page("アップロード可能な画像は縦横それぞれ100px以上、1000px未満です"); // アップロードされた画像ファイルを消去する unlink($strBaseFilename); exit(); } // アップロードされた画像の指定された縦横比の場合での切り出しサイズ(開始座標、幅)を得る if($size[0]/$size[1] > $size_aspect[0]/$size_aspect[1]) { // 横が長すぎる場合 $rect_size[0] = (int)(($size[0] - $size[1] * $size_aspect[0]/$size_aspect[1])/2); // 横開始 $rect_size[1] = 0; // 縦開始 $rect_size[2] = (int)($size[1] * $size_aspect[0]/$size_aspect[1]); // 横幅 $rect_size[3] = $size[1]; // 縦幅 } else { $rect_size[0] = 0; // 横開始 $rect_size[1] = (int)(($size[1] - $size[0] * $size_aspect[1]/$size_aspect[0])/2); // 縦開始 $rect_size[2] = $size[0]; // 横幅 $rect_size[3] = (int)($size[0] * $size_aspect[1]/$size_aspect[0]); // 縦幅 } // 印画紙領域イメージ作成 $image = imagecreatetruecolor($size_paper[0], $size_paper[1]); $colorWhite = imagecolorallocate($image, 255, 255, 255); imagefill($image, 0, 0, $colorWhite); // 印画紙イメージに縦横方眼線をひく $colorGray = imagecolorallocate($image, 128, 128, 128); // 縦線をひく for($i=0; $i<$size_paper[0]-1; $i+=$size_scale*10) { imageline($image, $i, 0, $i, $size_paper[1]-1, $colorGray); imageline($image, $i+1, 0, $i+1, $size_paper[1]-1, $colorGray); } // 横線をひく for($i=0; $i<$size_paper[1]-1; $i+=$size_scale*10) { imageline($image, 0, $i, $size_paper[0]-1, $i, $colorGray); imageline($image, 0, $i+1, $size_paper[0]-1, $i+1, $colorGray); } // アップロードされた画像ファイルを、ビットマップに読み込む $image_src = imagecreatefromjpeg($uploadfile); // アップロードされた画像ファイルを消去する unlink($strBaseFilename); // 写真 1段目 を描画する for($i=0; $i<5; $i++) { if($sw_change_size == true) { $rect_size_dst[0] = (int)($size_aspect[0] * $size_scale * (1+0.03*$i)); // 横幅 $rect_size_dst[1] = (int)($size_aspect[1] * $size_scale * (1+0.03*$i)); // 縦幅 } else { $rect_size_dst[0] = (int)($size_aspect[0] * $size_scale); // 横幅 $rect_size_dst[1] = (int)($size_aspect[1] * $size_scale); // 縦幅 } $rect_start_dst[0] = (int)($white_space + $rect_size_dst[0]*$i + $i*$size_scale*3.0); // 横開始 $rect_start_dst[1] = (int)$white_space; // 縦開始 if($rect_start_dst[0] + $rect_size_dst[0] + $white_space > $size_paper[0]) break; imagecopyresized($image, $image_src, $rect_start_dst[0], $rect_start_dst[1], $rect_size[0], $rect_size[1], $rect_size_dst[0], $rect_size_dst[1], $rect_size[2], $rect_size[3]); } // 写真 2段目 を描画する for($i=0; $i<5; $i++) { if($sw_change_size == true) { $rect_size_dst[0] = (int)($size_aspect[0] * $size_scale * (1+0.03*$i)); // 横幅 $rect_size_dst[1] = (int)($size_aspect[1] * $size_scale * (1+0.03*$i)); // 縦幅 } else { $rect_size_dst[0] = (int)($size_aspect[0] * $size_scale); // 横幅 $rect_size_dst[1] = (int)($size_aspect[1] * $size_scale); // 縦幅 } $rect_start_dst[0] = (int)($white_space + $rect_size_dst[0]*$i + $i*$size_scale*3.0); // 横開始 $rect_start_dst[1] = (int)($size_paper[1]/2); // 縦開始 if($white_space*2 + $rect_size_dst[1]*2 > $size_paper[1]) break; if($rect_start_dst[0] + $rect_size_dst[0] + $white_space > $size_paper[0]) break; imagecopyresized($image, $image_src, $rect_start_dst[0], $rect_start_dst[1], $rect_size[0], $rect_size[1], $rect_size_dst[0], $rect_size_dst[1], $rect_size[2], $rect_size[3]); } header("content-type: image/jpeg"); if($sw_download_file == true) header("Content-Disposition: attachment; filename=\"image.jpg\""); header( 'Cache-Control: Private' ); // JPEG画像を直接ブラウザへ出力 imagejpeg($image); // ビットマップを破棄する imagedestroy($image_src); imagedestroy($image); // このスクリプトを終了 exit(); // エラーページを表示する function disp_error_page($strMessage) { ?> 証明書用写真 作成プログラム

証明書写真 作成プログラム : 処理エラー