The PHP image watermark implementation code is complicated, but it is easy for experienced veterans. Next we will use a sample code to analyze the principle of adding watermarks to PHP images. When you need to upload images to a regular website, you often need to add the LOGO watermark of your website to the image. So how to implement this step? First, let's take a look at the principles of adding watermarks to PHP images.
Create an image by determining the file type, copy it to the original image, fill it with and create a rectangle for writing it into imagestring (), or determine the watermark type in the original image program: one is a string, and the other is to add a graphic object to it. Below is a PHP image watermark reprinted!
Parameter description:
$ Max_file_size: size limit of the uploaded file, in bytes
$ Destination_folder: File Upload path
$ Watermark: whether to add a watermark. (1 indicates adding a watermark; others indicates not adding a watermark );
PHP image watermark instructions:
1. remove the number before the line "extension = php_gd2.dll" in the PHP. ini file because the GD library is used;
2. change extension_dir = to the directory where your php_gd2.dll is located;
3. http://www.jb51.net/list/list_15_1.htm
PHP image watermarking code example:
The code is as follows:
// Upload file type list
$ Uptypes = array (
'Image/jpg ',
'Image/jpeg ',
'Image/png ',
'Image/pjpeg ',
'Image/GIF ',
'Image/bmp ',
'Image/x-png'
);
$ Max_file_size = 2000000; // size limit of uploaded files, in bytes
$ Destination_folder = "uploadimg/"; // file Upload path
$ Watermark = 1; // whether to add a watermark. (1 indicates adding a watermark. otherwise, no watermark is added );
$ Watertype = 1; // watermark type (1 is text, 2 is image)
$ Waterposition = 1; // watermark position (1 indicates the lower left corner and 2 indicates the lower right corner
, 3 is the upper left corner, 4 is the upper right corner, and 5 is the center );
$ Waterstring ="
Http://www.xplore.cn/"; // watermark string
$ Waterimg = "xplore.gif"; // watermark image
$ Imgpreview = 1; // whether to generate a preview image (1 is generated, others are not generated );
$ Imgpreviewsize = 1/2; // Thumbnail ratio
?>
ZwelL image upload program
If ($ _ SERVER ['request _ method'] = 'post ')
{
If (! Is_uploaded_file ($ _ FILES ["upfile"]
[Tmp_name])
// Whether a file exists
{
Echo "the image does not exist! ";
Exit;
}
$ File = $ _ FILES ["upfile"];
If ($ max_file_size <$ file ["size"])
// Check the file size
{
Echo "the file is too large! ";
Exit;
}
If (! In_array ($ file ["type"], $ uptypes ))
// Check the file type
{
Echo "file type does not match! ". $ File [" type "];
Exit;
}
If (! File_exists ($ destination_folder ))
{
Mkdir ($ destination_folder );
}
$ Filename = $ file ["tmp_name"];
$ Image_size = getimagesize ($ filename );
$ Pinfo = pathinfo ($ file ["name"]);
$ Ftype = $ pinfo ['extension'];
$ Destination = $ destination_folder.
Time (). ".". $ ftype;
If (file_exists ($ destination )&&
$ Overwrite! = True)
{
Echo "a file with the same name already exists ";
Exit;
}
If (! Move_uploaded_file ($ filename,
$ Destination ))
{
Echo "an error occurred while moving the file ";
Exit;
}
$ Pinfo = pathinfo ($ destination );
$ Fname = $ pinfo [basename];
Echo "uploaded successfully
File name:
". $ Destination_folder.
$ Fname ."
";
Echo "width:". $ image_size [0];
Echo "length:". $ image_size [1];
Echo"
Size: ". $ file [" size "]." bytes ";
If ($ watermark = 1)
{
$ Iinfo = getimagesize ($ destination, $ iinfo );
$ Nimage = imagecreatetruecolor ($ image_size [0]
, $ Image_size [1]);
$ White = imagecolorallocate ($ nimage, 255,255,255 );
$ Black = imagecolorallocate ($ nimage, 0, 0 );
$ Red = imagecolorallocate ($ nimage, 255, 0, 0 );
Imagefill ($ nimage, 0, 0, $ white );
Switch ($ iinfo [2])
{
Case 1:
$ Simage = imagecreatefromgif ($ destination );
Break;
Case 2:
$ Simage = imagecreatefromjpeg ($ destination );
Break;
Case 3:
$ Simage = imagecreatefrompng ($ destination );
Break;
Case 6:
$ Simage = imagecreatefromwbmp ($ destination );
Break;
Default:
Die ("unsupported file types ");
Exit;
}
Imagecopy ($ nimage, $ simage, 0, 0, 0,
$ Image_size [0], $ image_size [1]);
Imagefilledrectangle ($ nimage, 1,
$ Image_size [1]-15, 80, $ image_size [1], $ white );
Switch ($ watertype)
{
Case 1: // add a watermark string
Imagestring ($ nimage, 2, 3, $ image_size [1]-15,
$ Waterstring, $ black );
Break;
Case 2: // add a watermark image
$ Simage1 = imagecreatefromgif ("xplore.gif ");
Imagecopy ($ nimage, $ simage1 );
Imagedestroy ($ simage1 );
Break;
}
Switch ($ iinfo [2])
{
Case 1:
// Imagegif ($ nimage, $ destination );
Imagejpeg ($ nimage, $ destination );
Break;
Case 2:
Imagejpeg ($ nimage, $ destination );
Break;
Case 3:
Imagepng ($ nimage, $ destination );
Break;
Case 6:
Imagewbmp ($ nimage, $ destination );
// Imagejpeg ($ nimage, $ destination );
Break;
}
// Overwrite the original uploaded File
Imagedestroy ($ nimage );
Imagedestroy ($ simage );
}
If ($ imgpreview = 1)
{
Echo"
Image preview:
";
Echo" Height = ". ($ image_size [1] * $ imgpreviewsize );"
Echo "alt = \" image preview: \ r File name :".
$ Destination. "\ r Upload Time: \"/> ";
}
}
?>
You can also refer to the PHP class for adding watermarks to images.