フォームからアップロードした画像にPHPでロゴ画像(透かし)を追加する方法
2024/03/30
フォームから送られてきた画像に対してサイトロゴみたいなロゴ画像を右下等、指定の位置に追加したかった。所謂ウォーターマーク(透かし)処理を行いたい。「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ページよりファイルをダウンロードし、適当なディレクトリにアップロードする。
今回はこちらの方法を取った。
ソースコード
フォーム側(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_watermark = "./logo.png";
//X軸の位置
$handle->image_watermark_x = -5;
//Y軸の位置
$handle->image_watermark_y = -5;
$handle->Process('./img/');
if( $handle->processed ){
//成功処理
echo 'success';
}else{
//エラー処理
echo $handle->error;
}
}else{
//エラー処理
echo $handle->error;
}
各種オプションについて
ロゴ画像(透かし)処理関連の各種オプションについてはこちらのページを参照。
関連記事
-
-
imgタグのsrc属性のURLにPHPでタイムスタンプを付与しキャッシュ対策する方法
imgタグで画像を表示する際、画像を書き換えても同じものが表示されるというケース ...
-
-
ファイルの更新日付取得とリネーム
やりたかった事は、画像ファイルの更新日時取得と リネーム。 ■参考サイト htt ...
-
-
PHPにてSVGファイルをjpg / png画像に変換する方法
PHPにてSVGファイルをjpgもしくはpng形式の画像ファイルに変換したいとい ...
-
-
smart_resize_imageで縦横の比率関係なく、固定リサイズ
PHPで縦横どちらかが指定の長さを超えた場合、比率を保ったままリサイズで使ったs ...
-
-
formのinput="file"でディレクトリを選択させ、ディレクトリ内のファイルを全てアップロードする方法
フォームで複数のファイルをアップロードしたい場合、input="file"を複数 ...