phper,PHP学习_PHP技术_PHP网站建设_PHP程序员专注于PHP技术研究及学习

Adophper » 编程开发 » PHP生成图片水印和文字水印

PHP生成图片水印和文字水印

此文被围观1324日期: 2012-05-31 分类 : 编程开发  标签:  ···

文本水印

我们使用函数watermark_text()来生成文本水印,你必须先指定字体源文件、字体大小和字体文本,具体代码如下:

1$font_path = "GILSANUB.TTF"; // Font file
2$font_size = 30; // in pixcels
3$water_mark_text_2 = "phpfuns"; // Watermark Text
4
5function watermark_text($oldimage_name, $new_image_name)
6{
7global $font_path, $font_size, $water_mark_text_2;
8list($owidth,$oheight) = getimagesize($oldimage_name);
9$width = $height = 300;
10$image = imagecreatetruecolor($width, $height);
11$image_src = imagecreatefromjpeg($oldimage_name);
12imagecopyresampled($image, $image_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
13$blue = imagecolorallocate($image, 79, 166, 185);
14imagettftext($image, $font_size, 0, 68, 190, $blue, $font_path, $water_mark_text_2);
15imagejpeg($image, $new_image_name, 100);
16imagedestroy($image);
17unlink($oldimage_name);
18return true;
19}

图片水印

我们使用函数watermark_image()来生成图片水印,你必须先水银图片的源文件。具体代码如下:

1$image_path = "phpfuns.png";
2
3function watermark_image($oldimage_name, $new_image_name)
4/{
5global $image_path;
6list($owidth,$oheight) = getimagesize($oldimage_name);
7$width = $height = 300;
8$im = imagecreatetruecolor($width, $height);
9$img_src = imagecreatefromjpeg($oldimage_name);
10imagecopyresampled($im, $img_src, 0, 0, 0, 0, $width, $height, $owidth, $oheight);
11$watermark = imagecreatefrompng($image_path);
12list($w_width, $w_height) = getimagesize($image_path);
13$pos_x = $width - $w_width;
14$pos_y = $height - $w_height;
15imagecopy($im, $watermark, $pos_x, $pos_y, 0, 0, $w_width, $w_height);
16imagejpeg($im, $new_image_name, 100);
17imagedestroy($im);
18unlink($oldimage_name);
19return true;
20}

上传图片表单

我们使用下面的表单来上传图片:

1<?php
2$demo_image= "";
3if(isset($_POST['createmark']) and $_POST['createmark'] == "Submit")
4{
5$path = "uploads/";
6$valid_formats = array("jpg", "bmp","jpeg");
7$name = $_FILES['imgfile']['name'];
8if(strlen($name))
9{
10list($txt, $ext) = explode(".", $name);
11if(in_array($ext,$valid_formats) && $_FILES['imgfile']['size'] <= 256*1024)
12{
13$upload_status = move_uploaded_file($_FILES['imgfile']['tmp_name'], $path.$_FILES['imgfile']['name']);
14if($upload_status){
15$new_name = $path.time().".jpg";
16// Here you have to user functins watermark_text or watermark_image
17if(watermark_text($path.$_FILES['imgfile']['name'], $new_name))
18$demo_image = $new_name;
19}
20}
21else
22$msg="File size Max 256 KB or Invalid file format.";
23}
24}
25?>
26// HTML Code
27<form name="imageUpload" method="post" enctype="multipart/form-data" >
28Upload Image
29Image :<input type="file" name="imgfile" />
30<input type="submit" name="createmark" value="Submit" />
31<?php
32if(!empty($demo_image))
33echo '';
34?>
35

实际上就是PHP的gd库,一切就是这么简单!

本站使用ThinkPHP框架开发读图网主题,目前托管在阿里云,图片由读图网提供. 蜀ICP备12031064号

Copyright © 2011-2017adophper.com All Rights Reserved.