Home Backend Development PHP Tutorial Code sharing for adding Chinese watermark to php images_PHP tutorial

Code sharing for adding Chinese watermark to php images_PHP tutorial

Jul 21, 2016 pm 03:15 PM
header i php Chinese code share add picture copy accomplish watermark

Example 1

Copy code The code is as follows:

Header("Content-type : image/png"); /*Notify the browser that an image is to be output*/
$im = imagecreate(400, 300); /*Define the size of the image*/
$gray = ImageColorAllocate($im, 235, 235, 235);
$pink = ImageColorAllocate($im, 255, 128, 255);
$fontfile = "simkai.ttf";
/* $fontfile font path, depending on the operation Depends on the system, it can be simhei.ttf (Helvetica), SIMKAI.TTF (Italic), SIMFANG.TTF (Imitation Song Dynasty), SIMSUN.TTC (Song Dynasty & New Song Dynasty) and other Chinese fonts supported by GD*/
$str = iconv('GB2312','UTF-8','Chinese watermark'); /*Convert gb2312 character set to UTF-8 characters*/
ImageTTFText($im, 30, 0, 100, 200, $pink, $fontfile, $str);
/* Add Chinese watermark*/
Imagepng($im);
ImageDestroy($im);
?>

Example 2
Copy code The code is as follows:

// **** ************************************ //
// Function: Add text to pictures
// Parameters: $img Image file name
// $new_img Save image file name, if empty means not to save the image
// $text String content
// text_size String size
// text_angle font string output angle
// text_x string output x coordinate
// text_y string output y coordinate
// $text_font font file name
// $r ,$g,$b String color RGB value
// ********************************** ****** //
function img_text($img, $new_img, $text, $text_size, $text_angle, $text_x, $text_y, $text_font, $r, $g, $b){
$text=iconv("gb2312","UTF-8",$text);
Header("Content-type: image/gif");
$im = @imagecreatefromstring(file_get_contents($img) ) or die ("Failed to open image!");
$color = ImageColorAllocate($im, $r,$g,$b);
//ImageTTFText(int im, int size, int angle, int x, int y, int col, string fontfile, string text):
//This function writes TTF (TrueType Fonts) font text into the image.
//Parameters: size is the size of the font;
// angle is the angle of the font, calculated clockwise, 0 degrees is horizontal (from left to right), 90 degrees is the text from bottom to top ;
// The two parameters x and y are the coordinate values ​​of the text (the origin is the upper left corner);
// col is the color of the text;
// fontfile is the name of the font file;
/ /text is the string content.
ImageTTFText($im, $text_size, $text_angle, $text_x, $text_y, $color, $text_font, $text);
if ($new_img==""):
ImageGif($im ); // Do not save the image, only display
else:
ImageGif($im,$new_img); // Save the image, but do not display it
endif;
ImageDestroy($im); / /End graphics, release memory space
}
?>

Example 3
Copy code The code is as follows :

/*
* Function: PHP image watermark (watermark supports images or text)
* Parameters:
* $groundImage background image, which needs to be watermarked Pictures currently only support GIF, JPG, and PNG formats;
* $waterPos watermark position, there are 10 states, 0 is a random position;
* 1 is top left, 2 is top center, 3 is top center Right;
* 4 means the middle is on the left, 5 means the middle is in the middle, 6 is the middle is on the right;
* 7 is the bottom is on the left, 8 is the bottom is in the center, 9 is the bottom is on the right;
* $ waterImage image watermark, that is, pictures used as watermarks, currently only supports GIF, JPG, PNG formats;
* $waterText text watermark, that is, text is used as a watermark, supports ASCII code, does not support Chinese;
* $textFont Text size, the value is 1, 2, 3, 4 or 5, the default is 5;
* $textColor text color, the value is a hexadecimal color value, the default is #FF0000 (red);
*
* Note: Support GD 2.0, Support FreeType, GIF Read, GIF Create, JPG, PNG
* It is best not to use $waterImage and $waterText at the same time. Just choose one of them, and use $waterImage first.
* When $waterImage is valid, the parameters $waterString, $stringFont, and $stringColor will not take effect.
* The file name of the watermarked image is the same as $groundImage.
* Author: longware @ 2004-11-3 14:15:13
*/
function imageWaterMark($groundImage,$waterPos=0,$waterImage=””,$waterText=””,$ textFont=5,$textColor=”#FF0000″)
{
$isWaterImage = FALSE;
$formatMsg = “This file format is not supported yet. Please use image processing software to convert the image to GIF or JPG. , PNG format.”;
//Read watermark file
if(!emptyempty($waterImage) && file_exists($waterImage))
{
$isWaterImage = TRUE;
$water_info = getimagesize($ waterImage);
$water_w = $water_info[0];//Get the width of the watermark image
$water_h = $water_info[1];//Get the height of the watermark image
switch($water_info[2 ])//Get the format of the watermark image
{
case 1:$water_im = imagecreatefromgif($waterImage);break;
case 2:$water_im = imagecreatefromjpeg($waterImage);break;
case 3:$water_im = imagecreatefrompng($waterImage);break;
default:die($formatMsg);
}
}
//Read the background image
if(!emptyempty( $groundImage) && file_exists($groundImage))
{
$ground_info = getimagesize($groundImage);
$ground_w = $ground_info[0];//Get the width of the background image
$ground_h = $ground_info[1];//Get the height of the background image
switch($ground_info[2])//Get the format of the background image
{
case 1:$ground_im = imagecreatefromgif($groundImage) ;break;
case 2:$ground_im = imagecreatefromjpeg($groundImage);break;
case 3:$ground_im = imagecreatefrompng($groundImage);break;
default:die($formatMsg);
}
}
else
{
die("The picture that needs to be watermarked does not exist! ”);
}
//Watermark position
if($isWaterImage)//Picture watermark
{
$w = $water_w;
$h = $water_h;
$label = "Image";
}
else//Text watermark
{
$temp = imagettfbbox(ceil($textFont*5),0,"./cour.ttf" ,$waterText);//Get the range of text using TrueType font
$w = $temp[2] - $temp[6];
$h = $temp[3] - $temp[7] ;
unset($temp);
$label = "text area";
}
if( ($ground_w<$w) || ($ground_h<$h) )
{
echo "The length or width of the image that needs to be watermarked is smaller than the watermark ".$label.", so the watermark cannot be generated! ”;
return;
}
switch($waterPos)
{
case 0://random
$posX = rand(0,($ground_w - $w)) ;
$posY = rand(0,($ground_h - $h));
break;
case 1://1 is top left
$posX = 0;
$posY = 0;
break;
case 2://2 is top-centered
$posX = ($ground_w - $w) / 2;
$posY = 0;
break;
case 3://3 is the top right
$posX = $ground_w - $w;
$posY = 0;
break;
case 4://4 is the middle left
$posX = 0;
$posY = ($ground_h - $h) / 2;
break;
case 5://5 is centered in the middle
$posX = ($ground_w - $w) / 2;
$posY = ($ground_h - $h) / 2;
break;
case 6://6 is middle right
$posX = $ground_w - $ w;
$posY = ($ground_h - $h) / 2;
break;
case 7://7 is bottom left
$posX = 0;
$posY = $ground_h - $h;
break;
case 8://8 is bottom centered
$posX = ($ground_w - $w) / 2;
$posY = $ground_h - $ h;
break;
case 9://9 is bottom right
$posX = $ground_w - $w;
$posY = $ground_h - $h;
break;
default://random
$posX = rand(0,($ground_w - $w));
$posY = rand(0,($ground_h - $h));
break ;
}
//Set the color mixing mode of the image
imagealphablending($ground_im, true);
if($isWaterImage)//Image watermark
{
imagecopy($ground_im , $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//Copy watermark to target file
}
else//Text watermark
{
if( ! emptyempty($textColor) && (strlen($textColor)==7) )
{
$R = hexdec(substr($textColor,1,2));
$G = hexdec(substr( $textColor,3,2));
$B = hexdec(substr($textColor,5));
}
else
{
die("The watermark text color format is incorrect !”);
}
imagestring ( $ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B));
}
//生成水印后的图片
@unlink($groundImage);
switch($ground_info[2])//取得背景图片的格式
{
case 1:imagegif($ground_im,$groundImage);break;
case 2:imagejpeg($ground_im,$groundImage);break;
case 3:imagepng($ground_im,$groundImage);break;
default:die($errorMsg);
}
//释放内存
if(isset($water_info)) unset($water_info);
if(isset($water_im)) imagedestroy($water_im);
unset($ground_info);
imagedestroy($ground_im);
}
//—————————————————————————————
$id=$_REQUEST['id'];
$num = count($_FILES['userfile']['name']);
print_r($_FILES['userfile']);
print_r($_FILES['userfile']['name']);
echo $num;
echo “
”;
if(isset($id)){
for($i=0;$i<$id;$i++){
if(isset($_FILES) && !emptyempty($_FILES['userfile']) && $_FILES['userfile']['size']>0)
{
$uploadfile = “./”.time().”_”.$_FILES['userfile'][name][$i];
echo “
”;
echo $uploadfile;
if (copy($_FILES['userfile']['tmp_name'][$i], $uploadfile))
{
echo “OK
”;
//文字水印
//imageWaterMark($uploadfile,5,”",”HTTP://www.lvye.info”,5,”#cccccc“);
//图片水印
$waterImage=”logo_ok1.gif”;//水印图片路径
imageWaterMark($uploadfile,9,$waterImage);
echo “”;
}
else
{
echo “Fail
”;
}
}
}
}
?>

for($a=0;$a<$id;$a++){
echo “文件:
”;
}
?>



代码4
复制代码 代码如下:

Add Chinese watermark
/*----------------------------- --------------------------------
**Description: This is used to add a bottom watermark to the specified image ( A custom class that does not occupy the picture display area), you need to create an object and call it Library support, iconv support is required (php5 is already included and does not need to be loaded)
2. Only suitable for three types of images, jpg/jpeg/gif/png, other types are not processed
3. Note that the attributes of the directory where the image is located must be Writable
4. Calling example:
$objImg = new MyWaterDownChinese();
$objImg->Path = "images/";
$objImg->FileName = "1.jpg ";
$objImg->Text = "HAHAKONGJIAN[url]HTTP://HI.BAIDU.COM/LYSONCN[/url]";
$objImg->Font = "./font/simhei .ttf";
$objImg->Run();
**Member function:
----------------------- ----------------------------------------*/
class MyWaterDownChinese{
var $Path = "./"; //The relative path of the directory where the picture is located relative to the page that calls this class
var $FileName = ""; //The name of the picture, such as "1.jpg"
var $Text = ""; //The watermark text to be added to the picture, supports Chinese
var $TextColor = "#ffffff"; //The color of the text, for gif pictures, the font color can only be black
var $TextBgColor = "#000000"; //Color of text background bar
var $Font = "c://windows//fonts//simhei.ttf"; //Font storage directory, relative path
var $OverFlag = true; //Whether to overwrite the original image, the default is to overwrite. When not overwriting, it will 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 image must be at least >=200 before watermark text will be added.
//--------------------------------------------- ---------------------
//Function: Class constructor (php5.0 or above)
//Parameters: None
//Return: None
function __construct(){;}
//----------------------------- -------------------------------------
//Function: destructor of class ( php5.0 or above)
//Parameters: None
//Return: None
function __destruct(){;}
//------------ -------------------------------------------------- ----
//------------------------------------
// Function: Run the function on the object and add watermark to the picture
//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 have the GD library installed and cannot add watermarks to images.";
return;
}
//Set the input and output image path names
$arr_in_name = explode(". ",$this->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/ When gif/png is used,
switch($imgType)
{
case 1:
$image = imagecreatefromgif($inImg);
$this->TextBgColor = "#ffffff "; //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 = imagecreatefrompng($inImg);
break;
default:
return;
break;
}
//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
//Fill the background color of the 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 images, temporary images
switch($imgType)
{
case 1:
imagegif($objTmpImg,$tmpImg);
break ;
case 2:
imagejpeg($objTmpImg,$tmpImg);
break;
case 3:
imagepng($objTmpImg,$tmpImg);
break;
default:
return;
break;
}
//Release resources
@imagedestroy($objTmpImg);
@imagedestroy($image);
//Rename 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: The created watermark text object
function createText($instring)
{
$outstring="";
$max=strlen($instring);
for($i=0;$i<$max;$i++)
{
$h=ord($instring[$i]);
if($h>=160 && $i< ;$max-1)
{
$outstring .= "".base_convert(bin2hex(iconv("gb2312","ucs-2",substr($instring,$i,2))) ,16,10).";";
$i++;
}
else
{
$outstring .= $instring[$i];
}
}
return $outstring;
}
}//class
?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/326177.htmlTechArticleExample 1 Copy the code as follows: ?php Header("Content-type: image/png"); /* Notify the browser that an image is to be output*/ $im = imagecreate(400, 300); /*Define the size of the image*/ $gray = ImageCol...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
1 months ago By 尊渡假赌尊渡假赌尊渡假赌
Two Point Museum: All Exhibits And Where To Find Them
1 months ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

CakePHP Working with Database CakePHP Working with Database Sep 10, 2024 pm 05:25 PM

Working with database in CakePHP is very easy. We will understand the CRUD (Create, Read, Update, Delete) operations in this chapter.

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

CakePHP Logging CakePHP Logging Sep 10, 2024 pm 05:26 PM

Logging in CakePHP is a very easy task. You just have to use one function. You can log errors, exceptions, user activities, action taken by users, for any background process like cronjob. Logging data in CakePHP is easy. The log() function is provide

See all articles