文本水印
我们使用函数watermark_text()来生成文本水印,你必须先指定字体源文件、字体大小和字体文本,具体代码如下:
1 | $font_path = "GILSANUB.TTF" ; |
3 | $water_mark_text_2 = "phpfuns" ; |
5 | function watermark_text( $oldimage_name , $new_image_name ) |
7 | global $font_path , $font_size , $water_mark_text_2 ; |
8 | list( $owidth , $oheight ) = getimagesize ( $oldimage_name ); |
10 | $image = imagecreatetruecolor( $width , $height ); |
11 | $image_src = imagecreatefromjpeg( $oldimage_name ); |
12 | imagecopyresampled( $image , $image_src , 0, 0, 0, 0, $width , $height , $owidth , $oheight ); |
13 | $blue = imagecolorallocate( $image , 79, 166, 185); |
14 | imagettftext( $image , $font_size , 0, 68, 190, $blue , $font_path , $water_mark_text_2 ); |
15 | imagejpeg( $image , $new_image_name , 100); |
17 | unlink( $oldimage_name ); |
图片水印
我们使用函数watermark_image()来生成图片水印,你必须先水银图片的源文件。具体代码如下:
1 | $image_path = "phpfuns.png" ; |
3 | function watermark_image( $oldimage_name , $new_image_name ) |
6 | list( $owidth , $oheight ) = getimagesize ( $oldimage_name ); |
8 | $im = imagecreatetruecolor( $width , $height ); |
9 | $img_src = imagecreatefromjpeg( $oldimage_name ); |
10 | imagecopyresampled( $im , $img_src , 0, 0, 0, 0, $width , $height , $owidth , $oheight ); |
11 | $watermark = imagecreatefrompng( $image_path ); |
12 | list( $w_width , $w_height ) = getimagesize ( $image_path ); |
13 | $pos_x = $width - $w_width ; |
14 | $pos_y = $height - $w_height ; |
15 | imagecopy( $im , $watermark , $pos_x , $pos_y , 0, 0, $w_width , $w_height ); |
16 | imagejpeg( $im , $new_image_name , 100); |
18 | unlink( $oldimage_name ); |
上传图片表单
我们使用下面的表单来上传图片:
3 | if (isset( $_POST [ 'createmark' ]) and $_POST [ 'createmark' ] == "Submit" ) |
6 | $valid_formats = array ( "jpg" , "bmp" , "jpeg" ); |
7 | $name = $_FILES [ 'imgfile' ][ 'name' ]; |
10 | list( $txt , $ext ) = explode ( "." , $name ); |
11 | if (in_array( $ext , $valid_formats ) && $_FILES [ 'imgfile' ][ 'size' ] <= 256*1024) |
13 | $upload_status = move_uploaded_file( $_FILES [ 'imgfile' ][ 'tmp_name' ], $path . $_FILES [ 'imgfile' ][ 'name' ]); |
15 | $new_name = $path .time(). ".jpg" ; |
16 | // Here you have to user functins watermark_text or watermark_image |
17 | if (watermark_text( $path . $_FILES [ 'imgfile' ][ 'name' ], $new_name )) |
18 | $demo_image = $new_name ; |
22 | $msg = "File size Max 256 KB or Invalid file format." ; |
27 | <form name= "imageUpload" method= "post" enctype= "multipart/form-data" > |
29 | Image :<input type= "file" name= "imgfile" />
|
30 | <input type= "submit" name= "createmark" value= "Submit" /> |
32 | if (! empty ( $demo_image )) |
33 | echo '' ; |
实际上就是PHP的gd库,一切就是这么简单!