PHP class used to add watermarks to images. Copy the code as follows :? Php ** function: PHP image watermark (Watermark supports images or text) * parameter: * $ groundImage background image, that is, the image to be watermarked. Currently, only GIF, JPG, and P are supported.
The code is as follows:
/*
* Function: PHP image watermark (watermarks support images or text)
* Parameters:
* $ GroundImage: specifies the background image to be Watermark. Currently, only GIF, JPG, and PNG formats are supported;
* $ WaterPos watermark position, which has 10 statuses. 0 indicates a random position;
* 1 is the top left, 2 is the top center, and 3 is the top right;
* 4: center left, 5: center, and 6: center right;
* 7 indicates that the bottom is left, 8 indicates that the bottom is center, and 9 indicates that the bottom is right;
* $ WaterImage: specifies the image Watermark. Currently, only the GIF, JPG, and PNG formats are supported;
* $ WaterText text watermark: uses text as a watermark. it supports ASCII codes and does not support Chinese characters;
* $ TextFont text size. The value is 1, 2, 3, 4, or 5. the default value is 5;
* $ TextColor text color. The value is a hexadecimal color value. The default value is # FF0000 (red );
*
* Note: Support GD 2.0, Support FreeType, GIF Read, GIF Create, JPG, and PNG
* $ WaterImage and $ waterText should not be used at the same time. select one of them and use $ waterImage first.
* When $ waterImage is valid, $ waterString, $ stringFont, and $ stringColor are invalid.
* The name of the watermark image is the same as that of $ 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 Currently. use image processing software to convert images to GIF, JPG, and PNG formats .";
// Read the watermark file
If (! Emptyempty ($ waterImage) & file_exists ($ waterImage ))
{
$ IsWaterImage = TRUE;
$ Water_info = getimagesize ($ waterImage );
$ Water_w = $ water_info [0]; // Obtain the watermark image width.
$ Water_h = $ water_info [1]; // Get the watermark image height
Switch ($ water_info [2]) // Obtain the watermark image format
{
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]; // Obtain the width of the background image.
$ Ground_h = $ ground_info [1]; // get the height of the background image
Switch ($ ground_info [2]) // Obtain the background image format
{
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 image to be watermarked does not exist !");
}
// Watermark Position
If ($ isWaterImage) // image watermark
{
$ W = $ water_w;
$ H = $ water_h;
$ Label = "image ";
}
Else // text watermark
{
$ Temp = imagettfbbox (ceil ($ textFont * 5), 0, "./cour. ttf", $ waterText); // get the text range using the 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 to be watermarked is smaller than that of the watermark". $ label. ", 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 the top left
$ PosX = 0;
$ PosY = 0;
Break;
Case 2: // 2 center the top
$ PosX = ($ ground_w-$ w)/2;
$ PosY = 0;
Break;
Case 3: // 3: top right
$ PosX = $ ground_w-$ w;
$ PosY = 0;
Break;
Case 4: // 4 is left in the middle
$ PosX = 0;
$ PosY = ($ ground_h-$ h)/2;
Break;
Case 5: // 5 center in the middle
$ PosX = ($ ground_w-$ w)/2;
$ PosY = ($ ground_h-$ h)/2;
Break;
Case 6: // 6 is the center and right
$ PosX = $ ground_w-$ w;
$ PosY = ($ ground_h-$ h)/2;
Break;
Case 7: // 7 is left at the bottom
$ PosX = 0;
$ PosY = $ ground_h-$ h;
Break;
Case 8: // 8 is centered at the bottom
$ PosX = ($ ground_w-$ w)/2;
$ PosY = $ ground_h-$ h;
Break;
Case 9: // 9: 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 mixed color 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 the watermark to the 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 ("incorrect watermark text color format !");
}
Imagestring ($ ground_im, $ textFont, $ posX, $ posY, $ waterText, imagecolorallocate ($ ground_im, $ R, $ G, $ B ));
}
// The image after the watermark is generated
@ Unlink ($ groundImage );
Switch ($ ground_info [2]) // Obtain the background image format
{
Case 1: imagegif ($ ground_im, $ groundImage); break;
Case 2: imagejpeg ($ ground_im, $ groundImage); break;
Case 3: imagepng ($ ground_im, $ groundImage); break;
Default: die ($ errorMsg );
}
// Release the memory
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
";
// Text watermark
// ImageWaterMark ($ uploadfile, 5, "", "HTTP: // www.lvye.info", 5, "# cccccc");
// Image watermark
Watermark waterimage##logo_ok1.gif "; // watermark image path
ImageWaterMark ($ uploadfile, 9, $ waterImage );
Echo "";
}
Else
{
Echo "Fail
";
}
}
}
}
?>
The http://www.bkjia.com/PHPjc/318930.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/318930.htmlTechArticle code is as follows :? Php/** function: PHP image watermark (Watermark supports images or text) * parameter: * $ groundImage background image, that is, the image to be watermarked. Currently, only GIF, JPG images are supported, p...