フォームからアップロードした画像にPHPで任意のテキストを追加する方法
以前フォームから送られてきた画像に対してサイトロゴみたいなロゴ画像を追加する記事を書いたが、今回はロゴではなく任意のテキスト(文言)を指定の位置に追加したい。これも「class.upload.php」ライブラリを用いることで簡単に実装できた。以下に対応方法をメモ。
目次
class.upload.php
公式サイト
https://www.verot.net/php_class_upload.htm
GitHub
https://github.com/verot/class.upload.php
ドキュメント
https://github.com/verot/class.upload.php/blob/master/README.md
インストール方法
composerを使う場合
composer require verot/class.upload.php
自サーバにアップロードする場合
公式サイトのclass.upload.phpページよりファイルをダウンロードし、適当なディレクトリにアップロードする。
今回はこちらの方法を取った。
事前準備
フォントファイルの準備
適当なフォントファイル(ttfファイル)をサーバにアップロードしておく。今回はこちらのサイトの「GenShinGothic-Light.ttf」を使用させていただいた。
尚、フォントファイルを用意しない場合(デフォルトのフォントを使った場合)、日本語のテキストが文字化けした。
ソースコード
フォーム側(index.php)
<html lang="ja">
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <form action="upload.php" method="post" enctype="multipart/form-data">
            <input type="file" name="file">
            <input type="submit" name="submit" value="送信">
        </form>
    </body>
</html>
アップロード側(upload.php)
<?php
require_once 'class.upload.php';
$file = $_FILES['file'];
$lang = 'ja_JP';
$handle = new \Verot\Upload\Upload($file, $lang);
if( $handle->uploaded ){
    //ファイル名の変更
    $handle->file_new_name_body = date('YmdHis');
    //同一ファイル名の場合は上書き
    $handle->file_overwrite = true;
    //フォント設定
    $handle->image_text_font = './GenShinGothic-Light.ttf';
    //テキスト内容
    $handle->image_text = "テストテキスト\n改行\nテストテキスト";
    //テキストサイズ
    $handle->image_text_size = 24;
    //X軸の位置
    $handle->image_text_x = -5;
    //Y軸の位置
    $handle->image_text_y = -5;
    $handle->Process('./img/');
    if( $handle->processed ){
        //成功処理
        echo 'success';
    }else{
        //エラー処理
        echo $handle->error;
    }
}else{
    //エラー処理
    echo $handle->error;
}
各種オプションについて
テキスト関連の各種オプションについてはこちらのページを参照。
関連記事
- 
					
													
											
				 - 
					
PHPでjpg / png画像をAVIF形式の画像に変換する方法
PHPでjpg / png画像をAVIF形式の画像に変換しサーバに保存したい。W ...
 
- 
					
													
											
				 - 
					
jQuery.uploadでリアルタイムプレビュー
やりたい事は、 ・<input type="file">で画像を選択 ...
 
- 
					
													
											
				 - 
					
PHPでファイル書き込み時に「failed to open stream: HTTP~~」エラー
PHPでファイルを書き込む際に「failed to open stream: H ...
 
- 
					
													
											
				 - 
					
FLASHから受信した画像をPHPで保存し、サムネイルも作る
■参考サイト ・FLASH http://www.ilovex.co.jp/bl ...
 
- 
					
													
											
				 - 
					
PHPで画像を比較して類似度を算出する「image-comparator」ライブラリの利用方法
PHPで画像の類似度を計測したい。ただ、そのためのロジックが全く分からないためラ ...