securimageのカスタマイズ方法を記載しました。
securimageを使えば、上にあるような画像を使ってキャプチャを作成できるようになります。
デフォルトのsecurimage
securimageで私たちが編集するのは「 securing_show.php 」です。そのデフォルト設定を載せておきます。
<?php
/**
Project: Securimage: A PHP class for creating and managing form CAPTCHA images
File: securimage_show.php
*
Copyright (c) 2018, Drew Phillips
All rights reserved.
*
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
*
- Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
*
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
*
Any modifications to the library should be indicated clearly in the source code
to inform users that the changes are not a part of the original software.
*
If you found this script useful, please take a quick moment to rate it.
http://www.hotscripts.com/rate/49400.html Thanks.
*
@link http://www.phpcaptcha.org Securimage PHP CAPTCHA
@link http://www.phpcaptcha.org/latest.zip Download Latest Version
@link http://www.phpcaptcha.org/Securimage_Docs/ Online Documentation
@copyright 2018 Drew Phillips
@author Drew Phillips drew@drew-phillips.com
@version 3.6.8 (May 2020)
@package Securimage
*
*/
// Remove the "//" from the following line for debugging problems
// error_reporting(E_ALL); ini_set('display_errors', 1);
require_once dirname(FILE) . '/securimage.php';
$img = new Securimage();
// You can customize the image by making changes below, some examples are included - remove the "//" to uncomment
//$img->ttf_file = './Quiff.ttf';
//$img->captcha_type = Securimage::SI_CAPTCHA_MATHEMATIC; // show a simple math problem instead of text
//$img->case_sensitive = true; // true to use case sensitve codes - not recommended
//$img->image_height = 90; // height in pixels of the image
//$img->image_width = $img->image_height * M_E; // a good formula for image size based on the height
//$img->perturbation = .75; // 1.0 = high distortion, higher numbers = more distortion
//$img->image_bg_color = new Securimage_Color("#0099CC"); // image background color
//$img->text_color = new Securimage_Color("#EAEAEA"); // captcha text color
//$img->num_lines = 8; // how many lines to draw over the image
//$img->line_color = new Securimage_Color("#0000CC"); // color of lines over the image
//$img->image_type = SI_IMAGE_JPEG; // render as a jpeg image
//$img->signature_color = new Securimage_Color(rand(0, 64),
// rand(64, 128),
// rand(128, 255)); // random signature color
// see securimage.php for more options that can be set
// set namespace if supplied to script via HTTP GET
if (!empty($_GET['namespace'])) $img->setNamespace($_GET['namespace']);
$img->show(); // outputs the image and content headers to the browser
// alternate use:
// $img->show('/path/to/background_image.jpg');
下の方にある
// You can customize the image by making changes below, some examples are included - remove the "//" to uncomment
から
// see securimage.php for more options that can be set
までがsecurimageカスタマイズできるところです。今回はsecurimage.phpには手を触れないでsecurimage_show.phpをカスタマイズします。
securimageカスタマイズガイド
フォントを指定
変えてもあんまり意味がないような気はします。
$img->ttf_file = './Quiff.ttf';
キャプチャを簡単な計算に変える
簡単なキャプチャにしたいのであればいいと思います。
こんな感じ。
$img->captcha_type = Securimage::SI_CAPTCHA_MATHEMATIC;
認証の際大文字と小文字を区別しない
個人的には設定する必要性を感じません。ただ、アルファベットの「o」と「O」が見分けられないとかの時は設定するといいのかもしれないです。
$img->case_sensitive = true;
キャプチャの高さ指定
$img->image_height = 90;
キャプチャの幅指定
M_Eは自然数(e)らしいです。
$img->image_width = $img->image_height * M_E;
文字の揺らぎ度
ここは好みに応じて選択してください。
もし設定するなら.75がいいと思います。
1.0
0.75
0.5
0.25
0
$img->perturbation = .75;
背景の色
$img->image_bg_color = new Securimage_Color("#0099CC");
文字の色
デフォルトのまま文字の色だけ変えると超絶見にくいのでやめてくださいね。
$img->text_color = new Securimage_Color("#EAEAEA");
画像中の線の数
線の数より「文字の揺らぎ度」で調節したほうがいいです。
文字の見にくさは下画像でわかるように線の数というより文字の歪みで決まる感が否めないです。
10
8
6
4
2
0
$img->num_lines = 8;
画像中の文字以外の色
ある程度効果がある気がします。
$img->line_color = new Securimage_Color("#0000CC");
画像タイプ
$img->image_type = SI_IMAGE_JPEG;
背景画像の設定
$img->show('/path/to/background_image.jpg');
以上です。ご覧いただきありがとうございました。