Home > Article > Backend Development > Add Chinese watermark to pictures with php_PHP tutorial
Add Chinese watermark
/*-------------------------------- --------------------------
**Description: This is used to add a bottom watermark to the specified image (does not occupy the image display area), you need to create an object and call it *Personnel: Lao Fat Niu ([email]fatkenme@163.com[/email] QQ:70177108)
**Note: 1. Requires gd library support and iconv support (php5 is already included and does not need to be loaded)
2. Only suitable for three types of pictures, jpg/jpeg/gif/png, other types are not processed
3. Note that the attributes of the directory where the picture is located must be writable
4. Calling example:
$objImg = new MyWaterDownChinese();
$objImg->Path = "images/";
$objImg->网[url]www.ppfriend.com[/url]";
$objImg->Font = "./font/simhei.ttf";
$objImg->Run();
**Member function:
--------------------------------------------- -----------------------*/
class MyWaterDownChinese{
var $Path = "./"; //The directory where the picture is located is relative to the calling directory The relative path of this type of page
var $FileName = ""; //The name of the picture, such as "1.jpg"
var $Text = ""; //The watermark text to be added to the picture, supported Chinese
var $TextColor = "#ffffff"; //The color of the text. When it comes to gif pictures, the font color can only be black
var $TextBgColor = "#000000"; //The color of the background bar of the text
var $Font = "c://windows//fonts//simhei.ttf"; //Font storage directory, relative path
var $OverFlag = true; //Whether to overwrite the original image, the default is Overwrite, when not covering, automatically add "_water_down" after the original image file name, such as "1.jpg" => "1_water_down.jpg"
var $BaseWidth = 200; //The width of the picture must be at least>= 200, watermark text will be added.
--------------------------
//Function: Class constructor (php5.0 or above)
//Parameters: None
//Return: None
function __construct(){;}
//---------------------- -----------------------------------------------
//Function: Class destructor (form above php5.0)
//Parameters: None
//Return: None
function __destruct(){;}
//------------------------------------
//Function: Object operation Function, add watermark to the image
//Parameters: None
//Return: None
function Run()
{
if($this->FileName == "" | | $this->Text == "")
return;
//Check whether the GD library is installed
if(false == function_exists("gd_info"))
{
echo "The system does not install the GD library, and you cannot add watermarks to the picture.";
Return;
}
// Set the input and output picture path. ->FileName);
//
$inImg = $this->Path.$this->FileName;
$outImg = $inImg;
$tmpImg = $this-> ;Path.$arr_in_name[0]."_tmp.".$arr_in_name[1]; //Temporarily processed pictures, very important
if(!$this->OverFlag)
$outImg = $this ->Path.$arr_in_name[0]."_water_down.".$arr_in_name[1];
//Check whether the image exists
if(!file_exists($inImg))
return ;
//Get the attributes of the image
$groundImageType = @getimagesize($inImg);
$imgWidth = $groundImageType[0];
$imgHeight = $groundImageType[1];
$imgType = $groundImageType[2];
if($imgWidth < $this->BaseWidth) //If it is less than the basic width, it will not be processed
return;
//The picture is not jpg/jpeg/gif /png, do not process
switch($imgType)
{
case 1:
$image = imagecreatefromgif($inImg);
$this->TextBgColor = "#ffff ff" ; //The font of the gif image can only be black, so the background color is set to white
break;
case 2:
$image = imagecreatefromjpeg($inImg);
break;
case 3:
$image = image > }
//Create color
$color = @imagecolorallocate($image,hexdec(substr($this->TextColor,1,2)),hexdec(substr($this->TextColor,3,2)),hexdec(substr($this-> TextColor,5,2))); //Text color
//Generate an empty image, its height is increased by the watermark height at the bottom
$newHeight = $imgHeight+20;
$objTmpImg = @ imagecreatetruecolor($imgWidth,$newHeight);
$colorBg = @imagecolorallocate($objTmpImg,hexdec(substr($this->TextBgColor,1,2)),hexdec(substr($this->TextBgColor,3 ,2)),hexdec(substr($this->TextBgColor,5,2))); //Background color
//Background color of the filled image
@imagefill ($objTmpImg,0,0, $colorBg);
//Copy the original image to the temporary image
@imagecopy($objTmpImg,$image,0,0,0,0,$imgWidth,$imgHeight);
//Create The watermark text object to be written
$objText = $this->createText($this->Text);
//Calculate the position of the watermark text to be written
$x = 5;
$y = $newHeight-5;
//Write text watermark
@imagettftext($objTmpImg,10,0,$x,$y,$color,$this->Font,$ objText);
//Generate new pictures, temporary pictures
switch($imgType)
{
case 1:
imagegif($objTmpImg,$tmpImg);
break;
case 2:
imagejpeg($objTmpImg,$tmpImg);
break; 🎜> > }
//Release resources
@imagedestroy($objTmpImg );
@imagedestroy($image);
//Rename the file
if($this->OverFlag)
{
//Overwrite the original image
@unlink( $inImg);
@rename($tmpImg,$outImg);
}
else
{
//Do not overwrite the original image
@rename($tmpImg,$outImg) ;
}
}
//--------------------------------- -----
//Function: Create watermark text object
//Parameters: None
//Return: Created watermark text object
function createText($instring)
{
$max=strlen($instring);
for($i=0;$i<$max;$i++)
{
$h=ord ($instring[$i]);
out out outstring out out string .= "".base_convert(bin2hex(iconv( "gb2312","ucs-2",substr($instring,$i,2))),16,10).";";
$outstring .= $instring[$i];
🎜>
http://www.bkjia.com/PHPjc/445139.html
www.bkjia.com
true
http: //www.bkjia.com/PHPjc/445139.html
TechArticle
Add Chinese watermark?php /*----------------- ----------------------------------------------- **Description: This is Customization for adding a bottom watermark to a specified image (does not occupy the image display area)...