<? Php /* * 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 "<bR> "; 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 "<br> "; Echo $ uploadfile; If (copy ($ _ FILES ['userfile'] ['tmp _ name'] [$ I], $ uploadfile )) { Echo "OK <br> "; // 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 <br> "; } } } } ?> <Form enctype = "multipart/form-data" method = "POST"> <? Php For ($ a = 0; $ a <$ id; $ a ++ ){ Echo "file: <input name =" userfile [] "type =" file "> <br> "; } ?> <Input type = "submit" value = "Upload"> </Form> |