- // Php watermark function
- 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 (! Empty ($ waterImage) & file_exists ($ waterImage ))
- {
- $ IsWaterImage = TRUE;
- $ Water_info = getimagesize ($ waterImage); // you can obtain an array.
- $ 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; // converts an image into a PHP identifiable encoding process
- Case 2: $ water_im = imagecreatefromjpeg ($ waterImage); break; // converts an image into a PHP recognizable encoding process
- Case 3: $ water_im = imagecreatefrompng ($ waterImage); break; // converts an image into a PHP identifiable encoding process
- Default: die ($ formatMsg );
- }
- }
- // Read the background image
- If (! Empty ($ 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 * 2.5), 0, "c:/windows/fonts/stcaiyun. 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 watermark 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 (! Empty ($ 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 ));
- }
- // 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; // create a gif image
- Case 2: imagejpeg ($ ground_im, $ groundImage); break; // create an image in jpeg format
- Case 3: imagepng ($ ground_im, $ groundImage); break; // Create a png image
- 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 );
- }
- ?>
- Php image upload code:
- For ($ I = 0; $ I {
- $ Upfile = "./img/". ($ I + 1). ". png"; // replace the path with your
- If (move_uploaded_file ($ _ FILES ['userfile'] ['tmp _ name'] [$ I], $ upfile )){
- ImageWaterMark ($ upfile, 9, "./shuiyin.png", "Made By Chenduan", 5, "# FF0000 ");
- /*
- * Function: image watermark (watermarks support images or text)
- * ImageWaterMark ($ groundImage, $ waterPos = 0, $ waterImage = "", $ waterText = "", $ textFont = 5, $ textColor = "# FF0000 ")
- * 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 );
- */
- Echo "";
- Echo "". ($ I + 1). "Image operation successful
";
- }
- Else {
- Echo "no." ($ I + 1). "the image cannot be uploaded.
";
- }
- }
- ?>
|