最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

超級好用的一個php上傳圖片類(隨機名,縮略圖,加水印)

 更新時間:2010年06月30日 01:00:52   作者:  
可生成隨機的名稱,縮略圖,加水印.
Upimages.class.php php上傳類
復制代碼 代碼如下:

<?php
class UpImages {
var $annexFolder = "upload";//附件存放點,默認為:annex
var $smallFolder = "small";//縮略圖存放路徑,注:必須是放在 $annexFolder下的子目錄,默認為:smallimg
var $markFolder = "mark";//水印圖片存放處
var $upFileType = "jpg gif png";//上傳的類型,默認為:jpg gif png rar zip
var $upFileMax = 1024;//上傳大小限制,單位是“KB”,默認為:1024KB
var $fontType;//字體
var $maxWidth = 500; //圖片最大寬度
var $maxHeight = 600; //圖片最大高度
function UpImages($annexFolder,$smallFolder,$includeFolder) {
$this->annexFolder = $annexFolder;
$this->smallFolder = $smallFolder;
$this->fontType = $includeFolder."/04B_08__.TTF";
}
function upLoad($inputName) {
$imageName = time();//設定當前時間為圖片名稱
if(@empty($_FILES[$inputName]["name"])) die("沒有上傳圖片信息,請確認");
$name = explode(".",$_FILES[$inputName]["name"]);//將上傳前的文件以“.”分開取得文件類型
$imgCount = count($name);//獲得截取的數量
$imgType = $name[$imgCount-1];//取得文件的類型
if(strpos($this->upFileType,$imgType) === false) die(error("上傳文件類型僅支持 ".$this->upFileType." 不支持 ".$imgType));
$photo = $imageName.".".$imgType;//寫入數據庫的文件名
$uploadFile = $this->annexFolder."/".$photo;//上傳后的文件名稱
$upFileok = move_uploaded_file($_FILES[$inputName]["tmp_name"],$uploadFile);
if($upFileok) {
$imgSize = $_FILES[$inputName]["size"];
$kSize = round($imgSize/1024);
if($kSize > ($this->upFileMax*1024)) {
@unlink($uploadFile);
die(error("上傳文件超過 ".$this->upFileMax."KB"));
}
} else {
die(error("上傳圖片失敗,請確認你的上傳文件不超過 $upFileMax KB 或上傳時間超時"));
}
return $photo;
}
function getInfo($photo) {
$photo = $this->annexFolder."/".$photo;
$imageInfo = getimagesize($photo);
$imgInfo["width"] = $imageInfo[0];
$imgInfo["height"] = $imageInfo[1];
$imgInfo["type"] = $imageInfo[2];
$imgInfo["name"] = basename($photo);
return $imgInfo;
}
function smallImg($photo,$width=128,$height=128) {
$imgInfo = $this->getInfo($photo);
$photo = $this->annexFolder."/".$photo;//獲得圖片源
$newName = substr($imgInfo["name"],0,strrpos($imgInfo["name"], "."))."_thumb.jpg";//新圖片名稱
if($imgInfo["type"] == 1) {
$img = imagecreatefromgif($photo);
} elseif($imgInfo["type"] == 2) {
$img = imagecreatefromjpeg($photo);
} elseif($imgInfo["type"] == 3) {
$img = imagecreatefrompng($photo);
} else {
$img = "";
}
if(empty($img)) return False;
$width = ($width > $imgInfo["width"]) ? $imgInfo["width"] : $width;
$height = ($height > $imgInfo["height"]) ? $imgInfo["height"] : $height;
$srcW = $imgInfo["width"];
$srcH = $imgInfo["height"];
if ($srcW * $width > $srcH * $height) {
$height = round($srcH * $width / $srcW);
} else {
$width = round($srcW * $height / $srcH);
}
if (function_exists("imagecreatetruecolor")) {
$newImg = imagecreatetruecolor($width, $height);
ImageCopyResampled($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
} else {
$newImg = imagecreate($width, $height);
ImageCopyResized($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
}
if ($this->toFile) {
if (file_exists($this->annexFolder."/".$this->smallFolder."/".$newName)) @unlink($this->annexFolder."/".$this->smallFolder."/".$newName);
ImageJPEG($newImg,$this->annexFolder."/".$this->smallFolder."/".$newName);
return $this->annexFolder."/".$this->smallFolder."/".$newName;
} else {
ImageJPEG($newImg);
}
ImageDestroy($newImg);
ImageDestroy($img);
return $newName;
}
function waterMark($photo,$text) {
$imgInfo = $this->getInfo($photo);
$photo = $this->annexFolder."/".$photo;
$newName = substr($imgInfo["name"], 0, strrpos($imgInfo["name"], ".")) . "_mark.jpg";
switch ($imgInfo["type"]) {
case 1:
$img = imagecreatefromgif($photo);
break;
case 2:
$img = imagecreatefromjpeg($photo);
break;
case 3:
$img = imagecreatefrompng($photo);
break;
default:
return False;
}
if (empty($img)) return False;
$width = ($this->maxWidth > $imgInfo["width"]) ? $imgInfo["width"] : $this->maxWidth;
$height = ($this->maxHeight > $imgInfo["height"]) ? $imgInfo["height"] : $this->maxHeight;
$srcW = $imgInfo["width"];
$srcH = $imgInfo["height"];
if ($srcW * $width > $srcH * $height) {
$height = round($srcH * $width / $srcW);
} else {
$width = round($srcW * $height / $srcH);
}
if (function_exists("imagecreatetruecolor")) {
$newImg = imagecreatetruecolor($width, $height);
ImageCopyResampled($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
} else {
$newImg = imagecreate($width, $height);
ImageCopyResized($newImg, $img, 0, 0, 0, 0, $width, $height, $imgInfo["width"], $imgInfo["height"]);
}

$white = imageColorAllocate($newImg, 255, 255, 255);
$black = imageColorAllocate($newImg, 0, 0, 0);
$alpha = imageColorAllocateAlpha($newImg, 230, 230, 230, 40);
ImageFilledRectangle($newImg, 0, $height-26, $width, $height, $alpha);
ImageFilledRectangle($newImg, 13, $height-20, 15, $height-7, $black);
ImageTTFText($newImg, 4.9, 0, 20, $height-14, $black, $this->fontType, $text[0]);
ImageTTFText($newImg, 4.9, 0, 20, $height-6, $black, $this->fontType, $text[1]);
if($this->toFile) {
if (file_exists($this->annexFolder."/".$this->markFolder."/".$newName)) @unlink($this->annexFolder."/".$this->markFolder."/".$newName);
ImageJPEG($newImg,$this->annexFolder."/".$this->markFolder."/".$newName);
return $this->annexFolder."/".$this->markFolder."/".$newName;
} else {
ImageJPEG($newImg);
}
ImageDestroy($newImg);
ImageDestroy($img);
return $newName;
}
}
?>

使用方法
復制代碼 代碼如下:

include 'Upimages.class.php';
$max="upload"; //文件上傳路徑
$mix="small"; //縮略圖路徑(必須在upload下建立)
$mark="mark"; //加水引的圖片存放路徑
$text = array("oktang","2012"); //水印內容
$img= new UpImages($max,$mix,$max); //實例化類文件
$photo = $img->upLoad("file"); //上傳的文件域
$img->maxWidth = $img->maxHeight = 600; //設置高,和寬
$img->toFile = true;
$newSmallImg = $img->smallImg($photo);
$newMark = $img->waterMark($photo,$text);
echo $newSmallImg;
echo $newMark;
echo "<img src='".$newSmallImg."' border='0'><br><br>";
echo "<img src='".$newMark."' border='0'><br><br>";

注意里面有個字體文件,大家可以從網上下載。

相關文章

  • php skymvc 一款輕量、簡單的php

    php skymvc 一款輕量、簡單的php

    skymvc是一款輕量、簡單的php mvc框架,借鑒了各大框架的設計,采納了很多優(yōu)秀的函數及類,skymvc不鼓勵傻瓜式的開發(fā),更注重給予開發(fā)者更多的思考空間。
    2011-06-06
  • php快速url重寫 更新版[需php 5.30以上]

    php快速url重寫 更新版[需php 5.30以上]

    本代碼是在apache上的LoadModule rewrite_module modules/mod_rewrite.so運行成功后的操作,利用php代碼對網站url重定向為更復雜的邏輯結構
    2010-04-04
  • php 格式化數字的時候注意數字的范圍

    php 格式化數字的時候注意數字的范圍

    因為 數據庫中 id 可能會很大 如果使用%d的話,就可能出現因為超出了范圍,而到不到正確的結果。所以,個人建議 對id進行格式化的時候 使用%.0f 比 %d 要 好的多。
    2010-04-04
  • 通過緩存數據庫結果提高PHP性能的原理介紹

    通過緩存數據庫結果提高PHP性能的原理介紹

    眾所周知,緩存數據庫查詢的結果可以顯著縮短腳本執(zhí)行時間,并最大限度地減少數據庫服務器上的負載。如果要處理的數據基本上是靜態(tài)的,則該技術將非常有效。這是因為對遠程數據庫的許多數據請求最終可以從本地緩存得到滿足,從而不必連接到數據庫、執(zhí)行查詢以及獲取結果
    2012-09-09
  • PHP正則判斷一個變量是否為正整數的方法

    PHP正則判斷一個變量是否為正整數的方法

    今天小編就為大家分享一篇關于PHP正則判斷一個變量是否為正整數的方法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • php日歷[測試通過]

    php日歷[測試通過]

    一直喜歡php下的日歷實現代碼,測試效果不錯
    2008-03-03
  • php 文件緩存函數

    php 文件緩存函數

    php 文件緩存函數,需要的朋友可以參考下。
    2011-10-10
  • php簡單生成隨機顏色的方法

    php簡單生成隨機顏色的方法

    這篇文章主要介紹了php簡單生成隨機顏色的方法,涉及php隨機數與數組相關操作技巧,需要的朋友可以參考下
    2016-05-05
  • php對象和數組相互轉換的方法

    php對象和數組相互轉換的方法

    這篇文章主要介紹了php對象和數組相互轉換的方法,通過兩個自定義函數實現對象與數組的相互轉換功能,非常簡單實用,需要的朋友可以參考下
    2015-05-05
  • PHP編程獲取各個時間段具體時間的方法

    PHP編程獲取各個時間段具體時間的方法

    這篇文章主要介紹了PHP編程獲取各個時間段具體時間的方法,結合實例形式分析了基于date與strtotime函數進行日期時間運算的相關操作技巧,需要的朋友可以參考下
    2017-05-05

最新評論

本溪市| 屯留县| 图片| 大同县| 翁源县| 林州市| 富裕县| 丹凤县| 鄂托克旗| 科技| 庆城县| 康马县| 卫辉市| 长葛市| 西和县| 长垣县| 朔州市| 渭源县| 成都市| 东乡县| 礼泉县| 陆良县| 红原县| 洪江市| 巴林右旗| 双流县| 砀山县| 浮山县| 大足县| 大港区| 成安县| 衡阳县| 红安县| 桂东县| 登封市| 伊金霍洛旗| 麻江县| 佛山市| 略阳县| 浑源县| 昆山市|