- /*PHP 画像追加テキスト透かしライブラリ
-
- このクラス ライブラリは現在テキスト透かしのみをサポートしており、位置は右下隅で、色はランダムです
-
- 呼び出しメソッド:
- 1.必要に応じてウォーターマークを追加します。 ファイルの先頭にクラス ライブラリを導入します。
- include_once 'imageClass.php';
- 2. 新しいクラスを宣言します。
- $tpl=new image_fu; 3. 画像ウォーターマークのパラメーターを指定します。
- $ tpl->img (画像パス、ウォーターマーク テキスト、フォント パス、フォント サイズ、フォント角度);
- 例: $tpl->gt;img('abc.jpg','これはウォーターマーク テキストです','ziti.ttf ',30,0)
-
- */
-
- class image_fu{
-
- private $image;
- private $img_info;
- private $img_width;
- private $img_height;
- private $img_im;
- private $img_text;
- private $img_ttf ='';
- プライベート $img_new;
- プライベート $img_text_size;
- プライベート $img_jd;
-
-
- function img($img='',$txt='',$ttf='',$size=12,$jiaodu =0){
- if(isset($img )&&file_exists($img)){// 画像が存在するかどうかを確認します
- $this->gt;image =$img;
- $this->gt;img_text=$txt;
- $ this->img_text_size=$size;
- $this ->img_jd=$jiaodu;
- if(file_exists($ttf)){
- $this->img_ttf=$ttf;
- }else{
- exit('フォントファイル: '.$ttf.' が存在しません!' );
- }
- $this->imgyesno();
- }else{
- exit('画像ファイル: '.$img.' が存在しません');
- }
- }
-
- プライベート関数 imgyesno(){
-
- $this->img_info =getimagesize($this->image);
- $this->img_width =$this->gt;img_info[0];/ /画像の幅
- $this->img_height=$this->img_info[1];//画像の高さ
-
- //画像の種類を検出
- switch($this->img_info[2]){
- case 1: $this->img_im = imagecreatefromgif($this->image);break;
- ケース 2:$this->gt;img_im = imagecreatefromjpeg($this->image);break;
- ケース 3:$this-> ;img_im = imagecreatefrompng($this->image);break ;
- default:exit('画像形式はウォーターマークをサポートしていません');
- }
-
- $this->img_text();
- }
-
-
- function img_text(){
-
- imagealphablending($this->img_im, true);
-
- //色を設定します
- $color=imagecolorallocate($this->img_im,255,255,255);
- $txt_height=$this-> img_text_size;
- $txt_jiaodu=$this->img_jd;
- $ ttf_im=imagettfbbox($txt_height,$txt_jiaodu,$this->img_ttf,$this->img_text);
- $w = $ttf_im[2] - $ttf_im[6];
- $h = $ttf_im[3] - $ttf_im[7];
- //$h = $ttf_im[8]; $ttf_im);
-
- $txt_y =$this->gt;img_height *0.5;
- $txt_x =$this->img_width*0.2;
- //$txt_y =0;
- //$txt_x =0;
-
-
-
- $this->img_new=@imagettftext($this->img_im,$txt_height,$txt_jiaodu,$txt_x,$txt_y,$color,$this->img_ttf,$this->img_text);
-
- @unlink($this->image);//画像を削除
- switch($this->img_info[2]) {//背景画像の形式を取得
- case 1:imagegif($this->img_im ,$this->image);break;
- ケース 2:imagejpeg( $this->img_im,$this->image);
- ケース 3:imagepng($this->img_im,$this- >image);break;
- デフォルト: exit('ウォーターマーク画像に失敗しました' );
- }
-
- }
-
-
- // 画像を表示
- function img_show(){echo '';}
-
- //メモリを解放
- プライベート関数 img_nothing(){
- unset($this- >img_info);
- imagedestroy($this->img_im);
- }
-
- }
-
- ?>
-
-
- コードをコピーします
-
- /**
- * JetBrains PhpStorm によって作成されました。
- * ユーザー: taoqili
- * 日付: 12-7-18
- * 時刻: 上午 10:42
- */
- header("Content-Type: text/html; charset=utf-8");
- error_reporting(E_ERROR | E_WARNING);
- include "アップローダー. class.php";
- //アップロード画像ボックス内の説明フォーム名,
- $title = htmlspecialchars($_POST['pictitle'], ENT_QUOTES);
- $path = htmlspecialchars($_POST['dir'], ENT_QUOTES ) ;
- //設定をアップロードします
- $config = array(
- "savePath" => ($path == "1" ? "upload/" : "upload1/"),
- "maxSize" => 1000, / /Unit KB
- "allowFiles" => array(".gif", ".png", ".jpg", ".jpeg", ".bmp")
- );
- //アップロードインスタンスオブジェクトを生成し、アップロード完了
- $up = new Uploader("upfile", $config);
- /**
- * アップロードされたファイルに対応するパラメータと配列構造を取得します
- * array(
- * "originalName" => "", //元のファイル名
- * "name" => "", //新しいファイル名
- * " url" => "", //返されるアドレス
- * "size" => "", //ファイルサイズ
- * "type" =>"" , //ファイルタイプ
- * "state" => "" //アップロードステータス。アップロードが成功した場合は「SUCCESS」が返される必要があります
- * )
- */
- $info = $up->getFileInfo();
-
- /**
- * jsonデータをブラウザに返す
- * {
- * 'url' :'a.jpg', //保存したファイルパス
- * 'title' :'hello', //ファイルの説明、写真の場合は追加されますフロントエンドの title 属性に
- * 'original' :'b.jpg', //元のファイル名
- * 'state' :'SUCCESS' //アップロードステータス、成功するとSUCCESSが返され、それ以外の値は返されますそのまま写真アップロードボックスに返却してください
- * }
- */
-
- /* include "imgwater.php";
- $tpl=new image_fu;
- $tpl->img($info['url'],'http://www.zgxbzh.com/','simsun. ttc ',30,0);*/
-
- echo "{'url':'" . $info["url"] . "','original': ' " . $info["originalName"] . "','state':'" . $info["state"] . "'}";
-
-
-
コードをコピー
|