Header("Content-type: image/png"); /*Notify the browser that an image is to be output*/ $im = imagecreate(400, 300); /*Define the image Size*/ $gray = ImageColorAllocate($im, 235, 235, 235); $pink = ImageColorAllocate($im, 255, 128, 255); $fontfile = "simkai.ttf"; /* $fontfile The path of the font, depending on the operating system, can be simhei.ttf (Heold), SIMKAI.TTF (Italic), SIMFANG.TTF (Imitation Song), SIMSUN.TTC (Song style & New Song style) 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); ?>
Copy code
Example 2, php Image watermark code.
// ************************************* *** // // Function: Add text to the image // Parameters: $img Image file name // $new_img Save image file name, if empty, it 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 Picture, only displayed else: ImageGif($im,$new_img); // Save the picture, but not displayed endif; ImageDestroy($im); //End the graphic and release memory space } ?>
Copy code
Example 3, PHP image watermark, supports PHP text watermark effect.
/* * Function: PHP image watermark (watermark supports images or text) * Parameters: * $groundImage background image, that is, the image that needs to be watermarked, currently only supports GIF, JPG , PNG format; * $waterPos watermark position, there are 10 states, 0 is a random position; * 1 is top left, 2 is top center, 3 is top right; * 4 is middle left, 5 is middle center. , 6 means the center is on the right; * 7 means the bottom is on the left, 8 is the bottom on the center, 9 is the bottom is on the right; * $waterImage image watermark, that is, the image used as the watermark, currently only supports GIF, JPG, and 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 * $waterImage and $waterText are the most It is best not to use them at the same time, just choose one of them, and use $waterImage first. * When $waterImage is valid, the parameters $waterString, $stringFont, and $stringColor are not valid. * 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, JPG, or 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 = "Picture"; } else//Text watermark { $temp = imagettfbbox(ceil($textFont*5),0,"./cour.ttf",$waterText);//Get 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 longer than the watermark ".$label." Small, unable to generate watermark! ”; return; } switch($waterPos) { case 0://random $posX = rand(0,($ground_w - $w)); $posY = rand(0,($ground_h - $h)); break; case 1://1 means top left $posX = 0; $posY = 0; break; case 2://2 means top center $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 means center left $posX = 0; $posY = ($ground_h - $h) / 2; break; case 5://5 means center center $posX = ($ground_w - $w ) / 2; $posY = ($ground_h - $h) / 2; break; case 6://6 is the 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 center $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) ; 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 “文件: ”;
}
?>
复制代码
Code 4
Add Chinese watermark
/*----- **Description: This is a custom class used to add a bottom watermark to the specified image (does not occupy the image display area), you need to create an object to call * *Created: 2007-10-09 **Updated: 2007-10-09 **Instructions: 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 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 = "HAHAKONGJIANHTTP://HI.BAIDU.COM/LYSONCN";
$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 = ""; //Picture The watermark text to be added supports Chinese
var $TextColor = "#ffffff"; //The color of the text. For gif pictures, the font color can only be black
var $TextBgColor = "#000000"; //The background of the text Bar color
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 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, Watermark text will be added.
//-------------
//Function: Class constructor (php5.0 or above)
//Parameters: None
//Return: None
function __construct( ){;}
//---------------------
//Function: Class destructor (php5.0 or above)
//Parameters: None
//Returns: None
function __destruct(){;}
//----------------------
//Function: Object Run the function and 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 GD library is not installed on the system, and the image cannot be watermarked.";
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];
//Detect whether the picture 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 smaller than the basic width, it will not be processed
return;
//When the picture is not jpg/jpeg/gif/png, it will not be processed
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 increases 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 In 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 the 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;
case 3:
imagepng($objTmpImg,$tmpImg);
break;
default:
return;
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)
{
$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
?> ;
Copy code