国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) php教程 php手冊(cè) php給圖片加水印與上傳圖片加水印php類

php給圖片加水印與上傳圖片加水印php類

Jun 13, 2016 am 11:23 AM
php 上傳 功能 圖片 支持 教程 特點(diǎn) 水印

php教程給圖片加水印與上傳圖片加水印php類


/*
* 功能:PHP圖片水印 (水印支持圖片或文字)
* 參數(shù):
* $groundImage 背景圖片,即需要加水印的圖片,暫只支持GIF,JPG,PNG格式;
* $waterPos 水印位置,有10種狀態(tài),0為隨機(jī)位置;
* 1為頂端居左,2為頂端居中,3為頂端居右;
* 4為中部居左,5為中部居中,6為中部居右;
* 7為底端居左,8為底端居中,9為底端居右;
* $waterImage 圖片水印,即作為水印的圖片,暫只支持GIF,JPG,PNG格式;
* $waterText 文字水印,即把文字作為為水印,支持ASCII碼,不支持中文;
* $textFont 文字大小,值為1、2、3、4或5,默認(rèn)為5;
* $textColor 文字顏色,值為十六進(jìn)制顏色值,默認(rèn)為#FF0000(紅色);
*
* 注意:Support GD 2.0,Support FreeType、GIF Read、GIF Create、JPG 、PNG
* $waterImage 和 $waterText 最好不要同時(shí)使用,選其中之一即可,優(yōu)先使用 $waterImage。
* 當(dāng)$waterImage有效時(shí),參數(shù)$waterString、$stringFont、$stringColor均不生效。
* 加水印后的圖片的文件名和 $groundImage 一樣。
* 作者:longware @ 2004-11-3 14:15:13
*/
function imageWaterMark($groundImage,$waterPos=0,$waterImage=”",$waterText=”",$textFont=5,$textColor=”#FF0000″)
{
$isWaterImage = FALSE;
$formatMsg = “暫不支持該文件格式,請(qǐng)用圖片處理軟件將圖片轉(zhuǎn)換為GIF、JPG、PNG格式?!?

//讀取水印文件
if(!emptyempty($waterImage) && file_exists($waterImage))
{
$isWaterImage = TRUE;
$water_info = getimagesize($waterImage);
$water_w = $water_info[0];//取得水印圖片的寬
$water_h = $water_info[1];//取得水印圖片的高

switch($water_info[2])//取得水印圖片的格式
{
case 1:$water_im = imagecreatefromgif($waterImage);break;
case 2:$water_im = imagecreatefromjpeg($waterImage);break;
case 3:$water_im = imagecreatefrompng($waterImage);break;
default:die($formatMsg);
}
}

//讀取背景圖片
if(!emptyempty($groundImage) && file_exists($groundImage))
{
$ground_info = getimagesize($groundImage);
$ground_w = $ground_info[0];//取得背景圖片的寬
$ground_h = $ground_info[1];//取得背景圖片的高

switch($ground_info[2])//取得背景圖片的格式
{
case 1:$ground_im = imagecreatefromgif($groundImage);break;
case 2:$ground_im = imagecreatefromjpeg($groundImage);break;
case 3:$ground_im = imagecreatefrompng($groundImage);break;
default:die($formatMsg);
}
}
else
{
die(”需要加水印的圖片不存在!”);
}

//水印位置
if($isWaterImage)//圖片水印
{
$w = $water_w;
$h = $water_h;
$label = “圖片的”;
}
else//文字水印
{
$temp = imagettfbbox(ceil($textFont*5),0,”./cour.ttf”,$waterText);//取得使用 TrueType 字體的文本的范圍
$w = $temp[2] - $temp[6];
$h = $temp[3] - $temp[7];
unset($temp);
$label = “文字區(qū)域”;
}
if( ($ground_w{
echo “需要加水印的圖片的長(zhǎng)度或?qū)挾缺人 ?$label.”還小,無(wú)法生成水?。 ?
return;
}
switch($waterPos)
{
case 0://隨機(jī)
$posX = rand(0,($ground_w - $w));
$posY = rand(0,($ground_h - $h));
break;
case 1://1為頂端居左
$posX = 0;
$posY = 0;
break;
case 2://2為頂端居中
$posX = ($ground_w - $w) / 2;
$posY = 0;
break;
case 3://3為頂端居右
$posX = $ground_w - $w;
$posY = 0;
break;
case 4://4為中部居左
$posX = 0;
$posY = ($ground_h - $h) / 2;
break;
case 5://5為中部居中
$posX = ($ground_w - $w) / 2;
$posY = ($ground_h - $h) / 2;
break;
case 6://6為中部居右
$posX = $ground_w - $w;
$posY = ($ground_h - $h) / 2;
break;
case 7://7為底端居左
$posX = 0;
$posY = $ground_h - $h;
break;
case 8://8為底端居中
$posX = ($ground_w - $w) / 2;
$posY = $ground_h - $h;
break;
case 9://9為底端居右
$posX = $ground_w - $w;
$posY = $ground_h - $h;
break;
default://隨機(jī)
$posX = rand(0,($ground_w - $w));
$posY = rand(0,($ground_h - $h));
break;
}

//設(shè)定圖像的混色模式
imagealphablending($ground_im, true);

if($isWaterImage)//圖片水印
{
imagecopy($ground_im, $water_im, $posX, $posY, 0, 0, $water_w,$water_h);//拷貝水印到目標(biāo)文件
}
else//文字水印
{
if( !emptyempty($textColor) && (strlen($textColor)==7) )
{
$R = hexdec(substr($textColor,1,2));
$G = hexdec(substr($textColor,3,2));
$B = hexdec(substr($textColor,5));
}
else
{
die(”水印文字顏色格式不正確!”);
}
imagestring ( $ground_im, $textFont, $posX, $posY, $waterText, imagecolorallocate($ground_im, $R, $G, $B));
}

//生成水印后的圖片
@unlink($groundImage);
switch($ground_info[2])//取得背景圖片的格式
{
case 1:imagegif($ground_im,$groundImage);break;
case 2:imagejpeg($ground_im,$groundImage);break;
case 3:imagepng($ground_im,$groundImage);break;
default:die($errorMsg);
}

//釋放內(nèi)存
if(isset($water_info)) unset($water_info);
if(isset($water_im)) imagedestroy($water_im);
unset($ground_info);
imagedestroy($ground_im);
}
//—————————————————————————————
$id=$_REQUEST['id'];
$num = count($_FILES['userfile']['name']);
print_r($_FILES['userfile']);
print_r($_FILES['userfile']['name']);

echo $num;
echo “
”;
if(isset($id)){
for($i=0;$i

if(isset($_FILES) && !emptyempty($_FILES['userfile']) && $_FILES['userfile']['size']>0)
{
$uploadfile = “./”.time().”_”.$_FILES['userfile'][name][$i];
echo “
”;
echo $uploadfile;
if (copy($_FILES['userfile']['tmp_name'][$i], $uploadfile))
{
echo “OK
”;

//文字水印
//imageWaterMark($uploadfile,5,”",”HTTP://www.lvye.info”,5,”#cccccc“);

//圖片水印
$waterImage=”logo_ok1.gif”;//水印圖片路徑
imageWaterMark($uploadfile,9,$waterImage);

echo “php給圖片加水印與上傳圖片加水印php類”;
}
else
{
echo “Fail
”;
}
}
}
}

?>


for($a=0;$aecho “文件:
”;

}
?>


?>

//下面這段代碼是一段圖片上傳并且給上傳的圖片加水印

參數(shù)說(shuō)明:
$max_file_size? : 上傳文件大小限制, 單位BYTE
$destination_folder : 上傳文件路徑
$watermark?? : 是否附加水印(1為加水印,其他為不加水印);
使用說(shuō)明:
1. 將PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;號(hào)去掉,因?yàn)槲覀円玫紾D庫(kù);
2. 將extension_dir =改為你的php_gd2.dll所在目錄;
3. asp教程">http://www.knowsky.com/php.asp;
****************************************************/
//上傳文件類型列表
$uptypes=array(
??? 'image/jpg',?
??? 'image/jpeg',
??? 'image/png',
??? 'image/pjpeg',
??? 'image/gif',
??? 'image/bmp',
??? 'image/x-png'
);
$max_file_size=2000000;???? //上傳文件大小限制, 單位BYTE
$destination_folder="uploadimg/"; //上傳文件路徑
$watermark=1;????? //是否附加水印(1為加水印,其他為不加水印);
$watertype=1;????? //水印類型(1為文字,2為圖片)
$waterposition=1;???? //水印位置(1為左下角,2為右下角,3為左上角,4為右上角,5為居中);
$waterstring="http://www.xplore.cn/";? //水印字符串
$waterimg="xplore.gif";??? //水印圖片
$imgpreview=1;????? //是否生成預(yù)覽圖(1為生成,其他為不生成);
$imgpreviewsize=1/2;??? //縮略圖比例
?>


ZwelL圖片上傳程序




? 上傳文件:
?
?

? 允許上傳的文件類型為:=implode(', ',$uptypes)?>

if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
??? if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
??? //是否存在文件
??? {
???????? echo "圖片不存在www.bkjia.com!";
???????? exit;
??? }
??? $file = $_FILES["upfile"];
??? if($max_file_size ??? //檢查文件大小
??? {
??????? echo "文件太大!";
??????? exit;
??? }
??? if(!in_array($file["type"], $uptypes))
??? //檢查文件類型
??? {
??????? echo "文件類型不符!".$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 "同名文件已經(jīng)存在了";
??????? exit;
??? }
??? if(!move_uploaded_file ($filename, $destination))
??? {
??????? echo "移動(dòng)文件出錯(cuò)";
??????? exit;
??? }
??? $pinfo=pathinfo($destination);
??? $fname=$pinfo[basename];
??? echo " 已經(jīng)成功上傳
文件名:? ".$destination_folder.$fname."
";
??? echo " 寬度:".$image_size[0];
??? echo " 長(zhǎng)度:".$image_size[1];
??? echo "
大小:".$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,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("不支持的文件類型");
??????????? exit;
??????? }
??????? imagecopy($nimage,$simage,0,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:?? //加水印字符串
??????????? imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
??????????? break;
??????????? case 2:?? //加水印圖片
??????????? $simage1 =imagecreatefromgif("xplore.gif");
??????????? imagecopy($nimage,$simage1,0,0,0,0,85,15);
??????????? 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;
??????? }
??????? //覆蓋原上傳文件
??????? imagedestroy($nimage);
??????? imagedestroy($simage);
??? }
??? if($imgpreview==1)
??? {
??? echo "
圖片預(yù)覽:
";
??? echo "圖片預(yù)覽:r文件名:";
??? }
}
?>
本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

為什么我們?cè)u(píng)論:PHP指南 為什么我們?cè)u(píng)論:PHP指南 Jul 15, 2025 am 02:48 AM

PHPhasthreecommentstyles://,#forsingle-lineand/.../formulti-line.Usecommentstoexplainwhycodeexists,notwhatitdoes.MarkTODO/FIXMEitemsanddisablecodetemporarilyduringdebugging.Avoidover-commentingsimplelogic.Writeconcise,grammaticallycorrectcommentsandu

如何在Windows上安裝PHP 如何在Windows上安裝PHP Jul 15, 2025 am 02:46 AM

安裝PHP在Windows上的關(guān)鍵步驟包括:1.下載合適的PHP版本并解壓,推薦使用ThreadSafe版本配合Apache或NonThreadSafe版本配合Nginx;2.配置php.ini文件,將php.ini-development或php.ini-production重命名為php.ini;3.將PHP路徑添加到系統(tǒng)環(huán)境變量Path中以便命令行使用;4.測(cè)試PHP是否安裝成功,通過(guò)命令行執(zhí)行php-v和運(yùn)行內(nèi)置服務(wù)器測(cè)試解析能力;5.若使用Apache,需在httpd.conf中配置P

PHP語(yǔ)法:基礎(chǔ)知識(shí) PHP語(yǔ)法:基礎(chǔ)知識(shí) Jul 15, 2025 am 02:46 AM

PHP的基礎(chǔ)語(yǔ)法包括四個(gè)關(guān)鍵點(diǎn):1.PHP標(biāo)簽必須使用結(jié)束,推薦使用完整標(biāo)簽;2.輸出內(nèi)容常用echo和print,其中echo支持多參數(shù)且效率更高;3.注釋方式有//、#和//,用于提升代碼可讀性;4.每條語(yǔ)句必須以分號(hào)結(jié)尾,空格和換行不影響執(zhí)行但影響可讀性。掌握這些基本規(guī)則有助于寫出清晰穩(wěn)定的PHP代碼。

PHP 8安裝指南 PHP 8安裝指南 Jul 16, 2025 am 03:41 AM

在Ubuntu上安裝PHP8的步驟為:1.更新軟件包列表;2.安裝PHP8及基礎(chǔ)組件;3.檢查版本確認(rèn)安裝成功;4.按需安裝額外模塊。Windows用戶可下載ZIP包并解壓,隨后修改配置文件、啟用擴(kuò)展并將路徑加入環(huán)境變量。macOS用戶推薦使用Homebrew安裝,依次執(zhí)行添加tap、安裝PHP8、設(shè)置默認(rèn)版本及驗(yàn)證版本等步驟。不同系統(tǒng)下安裝方式雖有差異,但流程清晰,根據(jù)用途選對(duì)方法即可。

什么是PHP,它是用什么? 什么是PHP,它是用什么? Jul 16, 2025 am 03:45 AM

PHPisaserver-sidescriptinglanguageusedforwebdevelopment,especiallyfordynamicwebsitesandCMSplatformslikeWordPress.Itrunsontheserver,processesdata,interactswithdatabases,andsendsHTMLtobrowsers.Commonusesincludeuserauthentication,e-commerceplatforms,for

Python類可以有多個(gè)構(gòu)造函數(shù)嗎? Python類可以有多個(gè)構(gòu)造函數(shù)嗎? Jul 15, 2025 am 02:54 AM

Yes,aPythonclasscanhavemultipleconstructorsthroughalternativetechniques.1.Usedefaultargumentsinthe__init__methodtoallowflexibleinitializationwithvaryingnumbersofparameters.2.Defineclassmethodsasalternativeconstructorsforclearerandscalableobjectcreati

python如果還有示例 python如果還有示例 Jul 15, 2025 am 02:55 AM

寫Python的ifelse語(yǔ)句關(guān)鍵在于理解邏輯結(jié)構(gòu)與細(xì)節(jié)。1.基礎(chǔ)結(jié)構(gòu)是if條件成立執(zhí)行一段代碼,否則執(zhí)行else部分,else可選;2.多條件判斷用elif實(shí)現(xiàn),順序執(zhí)行且一旦滿足即停止;3.嵌套if用于進(jìn)一步細(xì)分判斷,建議不超過(guò)兩層;4.簡(jiǎn)潔場(chǎng)景可用三元表達(dá)式替代簡(jiǎn)單ifelse。注意縮進(jìn)、條件順序及邏輯完整性,才能寫出清晰穩(wěn)定的判斷代碼。

您的第一個(gè)PHP腳本:實(shí)用介紹 您的第一個(gè)PHP腳本:實(shí)用介紹 Jul 16, 2025 am 03:42 AM

如何開始編寫第一個(gè)PHP腳本?首先設(shè)置本地開發(fā)環(huán)境,安裝XAMPP/MAMP/LAMP,使用文本編輯器,了解服務(wù)器運(yùn)行原理。其次,創(chuàng)建一個(gè)名為hello.php的文件,輸入基本代碼并運(yùn)行測(cè)試。第三,學(xué)習(xí)混合使用PHP與HTML以實(shí)現(xiàn)動(dòng)態(tài)內(nèi)容輸出。最后,注意常見(jiàn)錯(cuò)誤如缺少分號(hào)、引用問(wèn)題及文件擴(kuò)展名錯(cuò)誤,并開啟錯(cuò)誤報(bào)告以便調(diào)試。

See all articles