国产精品成人VA在线观看,亚洲日韩在线中文字幕综合,亚洲AV电影天堂男人的天堂,久久人人爽人人爽人人av东京热

News新聞

業(yè)界新聞動態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁      樂道系統(tǒng)FAQ      百度編輯器增加水印功能

百度編輯器增加水印功能

標(biāo)簽: 發(fā)布日期:2014-05-04 23:00:00 862
【CLI】利用Curl下載文件實(shí)時進(jìn)度條顯示的實(shí)現(xiàn)

百度編輯器不用介紹,最近寫一個網(wǎng)站時用到給圖片加水印,去官方看添加水印的功能, 以及生成縮略圖,網(wǎng)上找了很多代碼,有些能用有些不能用,有些寫得太復(fù)雜!。

其實(shí)很簡單,如下方法操作即可;
 找到php/imageUp.php

$info = $up->getFileInfo();//在這一行下面添加如下代碼
setWater($info["url"],"../../images/sy1_5.png",9,"img");
 
//總結(jié):不管是生成縮略圖還是生成水印,都只需要在圖片成功上傳后得到圖片的服務(wù)器路徑,用下面兩個方法處理即可。
//seWater(原圖,水印,位置0-9,字體,圖片水印或文字水印)注:這里只支持圖片,文字的代碼已經(jīng)刪除。適用性不大
//說明:水印是加在原文件上,不會生成新的文件
//setWater("images/11.jpg","images/sy.png",0,"img");
function setWater($imgSrc,$markImg,$markPos,$markType)
{

    $srcInfo = @getimagesize($imgSrc);
    $srcImg_w = $srcInfo[0];
    $srcImg_h = $srcInfo[1];

    switch ($srcInfo[2])
{
case 1:
$srcim =imagecreatefromgif($imgSrc);
break;
case 2:
$srcim =imagecreatefromjpeg($imgSrc);
break;
case 3:
$srcim =imagecreatefrompng($imgSrc);
break;
default:
die("不支持的圖片文件類型");
exit;
}

if(!strcmp($markType,"img"))
{
if(!file_exists($markImg) || empty($markImg))
{
return;
}

$markImgInfo = @getimagesize($markImg);
$markImg_w = $markImgInfo[0];
$markImg_h = $markImgInfo[1];

if($srcImg_w < $markImg_w || $srcImg_h < $markImg_h)
{
return;
}

switch ($markImgInfo[2])
{
case 1:
$markim =imagecreatefromgif($markImg);
break;
case 2:
$markim =imagecreatefromjpeg($markImg);
break;
case 3:
$markim =imagecreatefrompng($markImg);
break;
default:
die("不支持的水印圖片文件類型");
exit;
}

$logow = $markImg_w;
$logoh = $markImg_h;
}

if($markPos == 0)
{
$markPos = rand(1, 9);
}

switch($markPos)
{
case 1:
$x = +5;
$y = +5;
break;
case 2:
$x = ($srcImg_w - $logow) / 2;
$y = +5;
break;
case 3:
$x = $srcImg_w - $logow - 5;
$y = +15;
break;
case 4:
$x = +5;
$y = ($srcImg_h - $logoh) / 2;
break;
case 5:
$x = ($srcImg_w - $logow) / 2;
$y = ($srcImg_h - $logoh) / 2;
break;
case 6:
$x = $srcImg_w - $logow - 5;
$y = ($srcImg_h - $logoh) / 2;
break;
case 7:
$x = +5;
$y = $srcImg_h - $logoh - 5;
break;
case 8:
$x = ($srcImg_w - $logow) / 2;
$y = $srcImg_h - $logoh - 5;
break;
case 9:
$x = $srcImg_w - $logow - 5;
$y = $srcImg_h - $logoh -5;
break;
default:
die("此位置不支持");
exit;
}

$dst_img = @imagecreatetruecolor($srcImg_w, $srcImg_h);

imagecopy ( $dst_img, $srcim, 0, 0, 0, 0, $srcImg_w, $srcImg_h);

if(!strcmp($markType,"img"))
{
imagecopy($dst_img, $markim, $x, $y, 0, 0, $logow, $logoh);
imagedestroy($markim);
}

// if(!strcmp($markType,"text"))
//{
// $rgb = explode(',', $TextColor);

// $color = imagecolorallocate($dst_img, $rgb[0], $rgb[1], $rgb[2]);
// imagettftext($dst_img, $fontSize, 0, $x, $y, $color, $fontType,$markText);
//}

switch ($srcInfo[2])
{
case 1:
imagegif($dst_img, $imgSrc);
break;
case 2:
imagejpeg($dst_img, $imgSrc);
break;
case 3:
imagepng($dst_img, $imgSrc);
break;
default:
die("不支持的水印圖片文件類型");
exit;
}

imagedestroy($dst_img);
imagedestroy($srcim);
}


//生成縮略圖
//makeThumbnail(源圖片,縮略圖,縮略圖寬,縮略圖高)

//makeThumbnail("images/222.jpg","images/2221.jpg",100,100);
function makeThumbnail($srcImgPath,$targetImgPath,$targetW,$targetH)
{
//echo $targetImgPath;
$imgSize = GetImageSize($srcImgPath);
$imgType = $imgSize[2];
//@ 使函數(shù)不向頁面輸出錯誤信息
switch ($imgType)
{
case 1:
$srcImg = @ImageCreateFromGIF($srcImgPath);
break;
case 2:
$srcImg = @ImageCreateFromJpeg($srcImgPath);
break;
case 3:
$srcImg = @ImageCreateFromPNG($srcImgPath);
break;
}
//取源圖象的寬高
$srcW = ImageSX($srcImg);
$srcH = ImageSY($srcImg);
if($srcW>$targetW || $srcH>$targetH)
{
$targetX = 0;
$targetY = 0;
if ($srcW > $srcH)
{
$finaW=$targetW;
$finalH=round($srcH*$finaW/$srcW);
$targetY=floor(($targetH-$finalH)/2);
}
else
{
$finalH=$targetH;
$finaW=round($srcW*$finalH/$srcH);
$targetX=floor(($targetW-$finaW)/2);
}
//function_exists 檢查函數(shù)是否已定義
//ImageCreateTrueColor 本函數(shù)需要GD2.0.1或更高版本
if(function_exists("ImageCreateTrueColor"))
{
$targetImg=ImageCreateTrueColor($targetW,$targetH);
}
else
{
$targetImg=ImageCreate($targetW,$targetH);
}
$targetX=($targetX<0)?0:$targetX;
$targetY=($targetX<0)?0:$targetY;
$targetX=($targetX>($targetW/2))?floor($targetW/2):$targetX;
$targetY=($targetY>($targetH/2))?floor($targetH/2):$targetY;
//背景白色
$white = ImageColorAllocate($targetImg, 255,255,255);
ImageFilledRectangle($targetImg,0,0,$targetW,$targetH,$white);
/*
PHP的GD擴(kuò)展提供了兩個函數(shù)來縮放圖象:
ImageCopyResized 在所有GD版本中有效,其縮放圖象的算法比較粗糙,可能會導(dǎo)致圖象邊緣的鋸齒。
ImageCopyResampled 需要GD2.0.1或更高版本,其像素插值算法得到的圖象邊緣比較平滑,
該函數(shù)的速度比ImageCopyResized慢。
*/
if(function_exists("ImageCopyResampled"))
{
ImageCopyResampled($targetImg,$srcImg,$targetX,$targetY,0,0,$finaW,$finalH,$srcW,$srcH);
}
else
{
ImageCopyResized($targetImg,$srcImg,$targetX,$targetY,0,0,$finaW,$finalH,$srcW,$srcH);
}
switch ($imgType) {
case 1:
ImageGIF($targetImg,$targetImgPath);
break;
case 2:
ImageJpeg($targetImg,$targetImgPath);
break;
case 3:
ImagePNG($targetImg,$targetImgPath);
break;
}
ImageDestroy($srcImg);
ImageDestroy($targetImg);
}
else //不超出指定寬高則直接復(fù)制
{
copy($srcImgPath,$targetImgPath);
ImageDestroy($srcImg);
}
}

function smallpic($srcImgPath)
{

$img_arr=explode(".",$srcImgPath);
$targetImgPath="..".$img_arr[2]."sm.".$img_arr[3];
return $targetImgPath;