ホームページ >バックエンド開発 >PHPチュートリアル >既存の画像にテキスト透かしの PHP コードを追加する

既存の画像にテキスト透かしの PHP コードを追加する

WBOY
WBOYオリジナル
2016-07-25 08:46:04833ブラウズ

php ライブラリは既存の画像にテキストの透かしを追加します。このコードはあまり完成していません。アドバイスをお願いします。コードは次のとおりです:

  1. /*PHP 画像とテキストの透かしライブラリ
  2. QQ:3697578482 Sad Song
  3. このクラス ライブラリは現在テキストの透かしのみをサポートしており、場所は右下隅です。 、色はランダムです
  4. メソッドの呼び出し:
  5. 1. 透かしを入れる必要があるファイルの先頭にクラス ライブラリを導入します:
  6. include_once 'imageClass.php';
  7. 2. 新しいクラスを宣言します:
  8. $tpl= new image_fu;
  9. 3. 画像の透かしのパラメーターを指定します:
  10. $tpl->img(画像パス、透かしテキスト、フォント パス、フォント サイズ、フォント角度);
  11. 例: $tpl->img('abc .jpg','これは透かしテキストです','ziti.ttf ',30,0)
  12. */
  13. class image_fu{
  14. private $image;
  15. private $img_info;
  16. private $img_width;
  17. private $img_height ;
  18. プライベート $img_im;
  19. プライベート $img_text;
  20. プライベート $img_ttf ='';
  21. プライベート $img_new;
  22. プライベート $img_text_size;
  23. プライベート $img_jd;
  24. 関数 img($img='',$txt='' ,$ttf='',$size=12,$jiaodu= 0){
  25. if(isset($img)&&file_exists($img)){//画像が存在するか確認します
  26. $this->image =$img ;
  27. $this->img_text=$txt;
  28. $this->img_text_size=$size;
  29. $this->img_jd=$jiaodu;
  30. if(file_exists($ttf)){
  31. $this-> img_ttf=$ttf;
  32. }else{
  33. exit('フォント ファイル: '.$ttf.' が存在しません! ');
  34. }
  35. $this->imgyesno();
  36. }else{
  37. exit('画像ファイル:'.$img.' は存在しません');
  38. }
  39. }
  40. プライベート関数 imgyesno(){
  41. $this->img_info =getimagesize($this->image);
  42. $this-> ;img_width =$this->img_info[0];//画像の幅
  43. $this->img_height=$this->img_info[1];//画像の高さ
  44. //画像の種類を検出
  45. switch($ this->img_info[2]){
  46. case 1:$this-> ;img_im = imagecreatefromgif($this->image);break;
  47. case 2:$this->img_im = imagecreatefromjpeg($this-> ;image);break;
  48. case 3:$this->img_im = imagecreatefrompng ($this->image);break;
  49. default:exit('画像形式はウォーターマークをサポートしていません'); this->img_text();
  50. }
  51. プライベート関数img_text(){
  52. imagealphablending($this->img_im,true);
  53. //カラーを設定
  54. $color=imagecolorallocate($this->img_im) ,rand(0,255),rand(0,255),rand(0,255));
  55. $ txt_height=$this->img_text_size;
  56. $txt_jiaodu=$this->img_jd;
  57. $ttf_im=imagettfbbox($txt_height,$txt_jiaodu ,$this->img_ttf,$this->img_text);
  58. $w = $ttf_im[2] - $ttf_im[6];
  59. $h = $ttf_im[3] - $ttf_im[7]; /$w = $ttf_im[7];
  60. //$h = $ttf_im[8];
  61. unset($ttf_im);
  62. $txt_y =$this->img_height-$h;
  63. $txt_x =$ this->img_width-$w;
  64. //$txt_y =0;
  65. / /$txt_x =0;
  66. $this->img_new=@imagettftext($this->img_im,$txt_height,$txt_jiaodu, $txt_x,$txt_y,$color,$this->img_ttf,$this->img_text);
  67. @unlink($this->image);//画像を削除
  68. switch($this-> img_info[2]) {//背景画像の形式を取得します
  69. case 1:imagegif($ this->img_im,$this->image);break; case 2:imagejpeg($this->img_im) ,$this->image);break;
  70. case 3:imagepng($this-> img_im,$this->image);break;
  71. デフォルト: exit('透かし画像に失敗しました'); }
  72. //画像を表示
  73. function img_show(){echo ''.$this->img_text.' ';}
  74. //メモリを解放
  75. プライベート関数img_nothing(){
  76. unset ($this->>img_info);
  77. imagedestroy($this->>img_im);
  78. }
  79. }
  80. ? >
  81. コードをコピー
php

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。