Implementation classes and usage examples of text watermark, thumbnail and image watermark developed by PHP

Time:2020-2-26

In this paper, the implementation class and usage of text watermark, thumbnail and image watermark developed by PHP are described. To share with you for your reference, as follows:

1. Implementation class imagetotest.class.php reference code

class ImageToTest {
  /**
   *Basic information of pictures
   */
  private $info;
  private $image;
  public function __construct($src){
    $info = getimagesize($src);
    $this->info = array(
      'width'=> $info[0],
      'height'=> $info[1],
      'type'=> image_type_to_extension($info[2],false),
      'mime'=>$info['mime']
    );
    $fun = "imagecreatefrom{$this->info['type']}";
    $this->image = $fun($src);
  }
  /**
   *Operation picture (compression)
   */
  public function thumb($width,$height){
    $image_thumb = imagecreatetruecolor($width,$height);
    imagecopyresampled($image_thumb,$this->image,0,0,0,0,$width,$height,
      $this->info['width'],$this->info['height']);
    imagedestroy($this->image);
    $this->image = $image_thumb;
  }
  /**
   *Action picture (add text watermark)
   */
  public function fontMark($content,$font_url,$size,$color,$local,$angle){
    $col = imagecolorallocatealpha($this->image,$color[0],$color[1],$color[2],$color[3]);
    imagettftext($this->image,$size,$angle,$local['x'],$local['y'],$col,$font_url,$content);
  }
  /**
   *Operation picture (add watermark picture)
   */
  public function imageMark($source,$local,$alpha){
    //1. Get the basic information of watermark image
    $info2 = getimagesize($source);
    //2. Get the image type of watermark by the image number of watermark
    $type2 = image_type_to_extension($info2[2],false);
    //3. Create an image type consistent with our watermark image in memory
    $func2 = "imagecreatefrom{$type2}";
    //4. Copy watermark image to memory
    $water = $func2($source);
    //5. Merge pictures
    imagecopymerge($this->image,$water,$local['x'],$local['y'],0,0,$info2[0],$info2[1],$alpha);
    //6. Destroy watermark image
    imagedestroy($water);
  }
  /**
   *Output pictures in browser
   */
  public function show(){
    header("Content-type:".$this->info['mime']);
    $funs = "image{$this->info['type']}";
    $funs($this->image);
  }
  /**
   *Save pictures to hard disk
   */
  public function save($newName){
    $funs = "image{$this->info['type']}";
    $funs($this->image,'./outPut/'.$newName.'.'.$this->info['type']);
  }
  /**
   *Destroy picture using destructor
   */
  public function __destruct()
  {
    imagedestroy($this->image);
  }
}

2. Test reference code


require_once('ImageToTest.class.php');
/*$src = './image/wbg.jpg';
$image = new ImageToTest($src);
$image->thumb(700,550);
$image->show();*/
/*$src2 = './image/wbg.jpg';
$content = 'SGC';
$font_url = './image/YGYcuhei.ttf';
$size = 33;
$color = array(
  0=>2,
  1=>222,
  2=>222,
  3=>60
);
$local = array(
  'x'=>20,
  'y'=>100
);
$angle = 10;
$image2 = new ImageToTest($src2);
$image2->fontMark($content,$font_url,$size,$color,$local,$angle);
$image2->show();
$image2->save('hahahah');*/
$src3 = './image/wbg.jpg';
$source = './image/water.jpg';
$local = array(
  'x'=>20,
  'y'=>100
);
$font_url = './image/YGYcuhei.ttf';
$size = 38;
$color = array(
  0=>2,
  1=>222,
  2=>222,
  3=>60
);
$alpha = 60;
$angle = 50;
$image3 = new ImageToTest($src3);
$image3->imageMark($source,$local,$alpha);
$image3->thumb(700,550);
$image3->fontMark('Hello',$font_url,$size,$color,$local,$angle);
$image3->show();
$image3->save('WAWAWAWAWA');

For more information about PHP, readers interested in PHP can see our special topics: summary of PHP graphics and image operation skills, PHP array operation skills, PHP data structure and algorithm tutorial, PHP programming algorithm summary, PHP mathematical operation skills summary, PHP string Usage Summary and PHP common database operation skills summary “

I hope this article will be helpful to the PHP programming.