php 图片上传 水印,PHP - 图片上传并添加水印
一個的面向過程的 PHP 圖片上傳并對其添加文字水印的功能。
還有很多待需完善的地方。
index.php
$conn=@mysql_connect("localhost","root","root") or die(mysql_error());
@mysql_select_db('uploadimg',$conn) or die(mysql_error());
$action = isset($_REQUEST['action'])? $_REQUEST['action'] : '';//判斷action
if($action=='add'){//上傳圖片操作
if (!is_dir("./upload")){//存儲目錄判斷
mkdir("./upload");
} elseif (!is_dir("./afterupload")){
mkdir("./afterupload");
}
$beforeName = $_FILES['photo']['name'];//原始圖片文件名
$afterName = "after".$_FILES['photo']['name'];//水印圖片文件名
$tmpName = $_FILES['photo']['tmp_name'];//緩存文件
$beforeUrl = "./upload/";//原始圖片路徑
$afterUrl = "./afterupload/";//原始圖片路徑
if (!file_exists("$beforeUrl"."$beforeName")){//原始圖片操作
move_uploaded_file($tmpName,"$beforeUrl"."$beforeName");
}
if (!file_exists("$afterUrl"."$afterName")){//水印圖片操作
$src = "$beforeUrl"."$beforeName";
//獲取圖片信息
$info = getimagesize($src);
//通過編號獲取圖像類型
$type = image_type_to_extension($info[2],false);
//在內存中創建和圖像類型一樣的圖像
$fun = "imagecreatefrom".$type;
//圖片復制到內存
$image = $fun($src);
//設置字體的路徑
$font = "./font/arial.ttf";
//水印內容
$content = "shuiyin";
//設置字體顏色和透明度
$color = imagecolorallocatealpha($image, 0, 0, 0, 0);
//(文件資源,紅,綠,藍,透明度)
//寫入文字
imagettftext($image, 30, 0, 0, 30, $color, $font, $content);
//(文件資源,字體尺寸,字體角度,x坐標,y坐標,字體顏色,字體類型,內容)
$fun = "image".$type;
//保存水印圖片
$fun($image,"$afterUrl"."$afterName");
$name = $beforeName;
$type = $_FILES['photo']['type'];
$url = "$beforeUrl"."$beforeName";
$afterurl = "$afterUrl"."$afterName";
$sqlstr = "insert into photo(name,type,url,afterurl) values('".$name."','".$type."','".$url."','".$afterurl."')";
@mysql_query($sqlstr) or die(mysql_error());
header('location:index.php');
}
}
else{
//顯示圖片列表及上傳表單
?>
圖片上傳功能body {
text-align: center;
}
.submit {
position: fixed;
right: 10px;
top: 10px;
padding: 10px;
margin: 0;
border: 1px solid black;
}
.list {
border: 0px solid black;
padding: 0;
}
table,tr,td {
border: 1px solid black;
}
table {
width: 800px;
}
.one,.two {
width: 50%;
}
圖片:
$sqlstr = "select * from photo order by id asc";
$query = mysql_query($sqlstr) or die(mysql_error());
$result = array();
while($thread = mysql_fetch_assoc($query)){
$result[] = $thread;
}
if(empty($result)){
echo "
沒有數據
";}else{
foreach($result as $key => $val){
$key = $key+1;
echo <<
| 序號:{$key} | 文件名:{$val['name']} |
| 原始圖 | 水印圖 |
EOF;
}
}
?>
}
?>
mysql
DROP TABLE IF EXISTS `photo`;
CREATE TABLE `photo` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL,
`type` varchar(100) NOT NULL,
`url` varchar(100) NOT NULL,
`afterurl` varchar(100) NOT NULL,
`binarydata` mediumblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
總結
以上是生活随笔為你收集整理的php 图片上传 水印,PHP - 图片上传并添加水印的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十大品牌内衣加盟(十大最受欢迎内衣品牌!
- 下一篇: 淮北特产(安徽淮北特色小吃)