導航:首頁 > 編程語言 > php水印縮放

php水印縮放

發布時間:2022-06-28 14:50:39

Ⅰ 誰有php批量處理圖片、圖片生成縮略圖、圖片添加水印的函數

//批量處理圖片、圖片生成縮略圖、圖片添加水印

$dir=opendir(dirname(__FILE__));
while(!!$_file=readdir($dir)){
list($filesname,$kzm)=explode(".",$_file);//獲取擴展名
if($kzm=="gif"or$kzm=="jpg"or$kzm=="JPG"or$kzm=="png"){
if(!makethumb("$_file","120","120","100")){
echo'執行成功!';
}else{
echo'執行失敗!';
}
}
}
closedir($dir);


/**
*處理縮略圖並添加水印函數
*@accesspubliuc
*@param$srcFile-----------圖片文件名
*@param$dstFile-----------另存的文件名
*@param$dstW-------------圖片保存的寬度
*@param$dstH--------------圖片保存的高度
*@param$rate---------------圖片保存的品質
*@param$markwords-----水印文字
*@param$markimage-----水印圖片
*@param使用方法makethumb("a.jpg","b.jpg","120","120","100");
*/
functionmakethumb($srcFile/*,$dstFile*/,$dstW,$dstH,$rate=100/*,$markwords=null,$markimage=null*/){

$data=GetImageSize($srcFile);
switch($data[2]){
case1:
$im=@ImageCreateFromGIF($srcFile);
break;
case2:
$im=@ImageCreateFromJPEG($srcFile);
break;
case3:
$im=@ImageCreateFromPNG($srcFile);
break;
}
if(!$im)returnFalse;
$srcW=ImageSX($im);
$srcH=ImageSY($im);
$dstX=0;
$dstY=0;
if($srcW*$dstH>$srcH*$dstW){
$fdstH=round($srcH*$dstW/$srcW);
$dstY=floor(($dstH-$fdstH)/2);
$fdstW=$dstW;
}
else
{
$fdstW=round($srcW*$dstH/$srcH);
$dstX=floor(($dstW-$fdstW)/2);
$fdstH=$dstH;
}
$ni=ImageCreateTrueColor($dstW,$dstH);
$dstX=($dstX<0)?0:$dstX;
$dstY=($dstX<0)?0:$dstY;
$dstX=($dstX>($dstW/2))?floor($dstW/2):$dstX;
$dstY=($dstY>($dstH/2))?floor($dstH/s):$dstY;
$white=ImageColorAllocate($ni,255,255,255);
$black=ImageColorAllocate($ni,0,0,0);
imagefilledrectangle($ni,0,0,$dstW,$dstH,$white);//填充背景色
ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fdstW,$fdstH,$srcW,$srcH);
//if($markwords!=null){
//$markwords=iconv("gb2312","UTF-8",$markwords);
////轉換文字編碼
//ImageTTFText($ni,20,30,450,560,$black,"simhei.ttf",$markwords);//寫入文字水印,參數依次為,文字大小|偏轉度|橫坐標|縱坐標|文字顏色|文字類型|文字內容
//}elseif($markimage!=null){
//$wimage_data=GetImageSize($markimage);
//switch($wimage_data[2]){
//case1:
//$wimage=@ImageCreateFromGIF($markimage);
//break;
//case2:
//$wimage=@ImageCreateFromJPEG($markimage);
//break;
//case3:
//$wimage=@ImageCreateFromPNG($markimage);
//break;
//}
//image($ni,$wimage,500,560,0,0,88,31);//寫入圖片水印,水印圖片大小默認為88*31
//imagedestroy($wimage);
//}
$dstFile=$srcFile.'.gif';
ImageJpeg($ni,$dstFile,$rate);
//ImageJpeg($ni,$srcFile,$rate);
imagedestroy($im);
imagedestroy($ni);
}

Ⅱ 如何用PHP 編程實現上傳數碼照片自動縮小且添加水印後並能保存Exif信息

把圖片導入CorelDRAW,點擊「屬性」後,根據屬性的顯示,導出圖片並按比例縮小。這樣不會像在ps里處理後會影響圖片效果。

Ⅲ php如何實時縮小圖片大小

PHP中縮放圖像:

有兩種改變圖像大小的方法.

(1):ImageCopyResized() 函數在所有GD版本中有效,但其縮放圖像的演算法比較粗糙.

(2):ImageCopyResampled(),其像素插值演算法得到的圖像邊緣比較平滑.質量較好(但該函數的速度比
ImageCopyResized() 慢).

兩個函數的參數是一樣的.如下:

ImageCopyResampled(dest,src,dx,dy,sx,sy,dw,dh,sw,sh);

ImageCopyResized(dest,src,dx,dy,sx,sy,dw,dh,sw,sh);

它們兩個都是從原圖像(source)中抓取特定位置(sx,sy)復制圖像qu區域到目標t
圖像(destination)的特定位置(dx,dy)。另外dw,dh指定復制的圖像區域在目標圖像上的大小,sw,sh指定從原圖像復制的圖像區域
的大小。如果有ps經驗的話,就相當於在原圖像選擇一塊區域,剪切移動到目的圖像上,同時有拉伸或縮小的操作。

例一:

(本例子是將圖片按原大小的4/1的大小顯示)

<?php
// 指定文件路徑和縮放比例
$filename = 'test.jpg';
$percent = 0.5;
// 指定頭文件Content type值
header('Content-type: image/jpeg');
// 獲取圖片的寬高
list($width, $height) = getimagesize($filename);
$newwidth = $width * $percent;
$newheight = $height * $percent;
// 創建一個圖片。接收參數分別為寬高,返回生成的資源句柄
$thumb = imagecreatetruecolor($newwidth, $newheight);
//獲取源文件資源句柄。接收參數為圖片路徑,返回句柄
$source = imagecreatefromjpeg($filename);
// 將源文件剪切全部域並縮小放到目標圖片上。前兩個為資源句柄
imageresampled($thumb, $source, 0, 0, 0, 0, $newwidth,
$newheight, $width, $height);
// 輸出給瀏覽器
imagejpeg($thumb);
?>

Ⅳ php文字水印,水印會根據圖片的大小自動變化

這個好像有點復雜哦
一般水印都是用GD庫函數實現的,你可以把上傳的圖片長寬取出來,這應該不難吧,然後根據需要在你實現水印的函數里根長寬參數關聯,應該就能實現。

Ⅳ php圖片可以等比例的縮放嗎

可以。

等比例縮放的方法是:

1、載入選區--自由變換。如下圖:

2、按住shift+alt鍵,使用滑鼠調整大小,這種情況下,選區會按照等比例的方法進行縮放的。

Ⅵ php 在給圖片加水印的時候 解析度改變了 不是原來的圖片的解析度

在php採集的時候,尤其是大量的自動採集的時候,加了水印的圖片想程序自動鑒別。
你是這種想法嗎?
這種想法可以,但沒有這種方法。以前沒有,今後也不會有。
水印和圖片已經形成一張新圖片了,不要說PHP對圖片沒有識別能力,就算PHP對圖片有識別能力,它也沒有辦法識別圖片上哪個屬於圖片內容,哪個屬於水印內容。
但是,我們就沒有辦法處理水印的問題嗎?辦法肯定是有的。我提供幾種思路:
1、我們自己建立一個無水印網站地址庫,這個由我們日常來管理。php通過圖片的真實地址,屬於無水印網站地址范圍,就認為是無水印的。不在范圍內的,就作為有水印處理。
2、如果我們固定從某個大站取圖片,它的圖片有的有水印,有的無水印,而且有水印的都是那麼固定的格式,那我們就根據它的方法,在水印上添加我們的水印。但這不是萬能的,如果它在圖片上全部鋪滿它的logo或者網址,像貼滿膏葯一樣無法下手,我們只能對此說sorry,換個網站吧。

Ⅶ php GD庫 怎麼設置水印圖片大小

PHP
GD庫對GIF支持好像不怎麼好
,高版本都不支持GIF,因為版權問題,你要做透明的水印盡量用PNG的

Ⅷ php如何實現自動加水印

加水印邏輯有兩種

一種是上傳直接加水印

另一種是利用偽靜態將圖片訪問重定向到處理程序,臨時加水印緩存並輸出

php處理圖片加水印可以使用gd庫中的相關函數

以下為臨時手打代碼,可以按此思路優化,有問題可以聯系本人

//此處需根據上傳的圖片格式使用對應函數實例化圖片
$img=imagecreatefromjpg($imgurl);
//根據水印圖片路徑實例化水印
$waterImg=imagecreatefrompng($waterpath);
//獲取原圖及水印圖片尺寸,用以計算是否需要縮放及放置位置
list($width,$height,$type,$attr)=getimagesize($imgurl);
list($waterw,$waterh,$type,$attr)=getimagesize($waterpath);
$scale=1;
$waterReleaseW=$waterw;
$waterReleaseH=$waterh;
if($waterReleaseW>$width*.5){
$scale=$width*.5/$waterw;
$waterReleaseW=$width*.5;
$waterReleaseH=$waterh*$scale;
}
if($waterReleaseH>$height*.5){
$scale*=$height*.5/$waterh;
$waterReleaseH=$height*.5;
$waterReleaseW=$waterw*$scale;
}

//將水印圖片拷貝到原圖指定位置(此示例為右下角)
imageresized($img,$waterImg,
$width-$waterReleaseW-10,$height-$waterReleaseH-10,
0,0,
$width-10,$height-10,
$waterw,$waterh);
//銷毀水印圖片實例
imagedestroy($waterImg);

//水印後圖片保存
imagejpeg($img,$newpath);

Ⅸ thinkphp如何給圖片添加水印時給原圖增加新的高度

加水印,等比縮放之類的,這個thinkphp的感覺很雞肋,給一般的jpg,靜態的gif加水印確實都不錯,但是給動態的gif就不行了,之前用了很多方法看了各種教程,純用php給的函數來解決,是不可能的,如果一個gif幀很多,那程序直接卡死,要麼就變形,最後用了4-5個方法,直接吧thinkphp 的圖片處理類改裝成 用PHP的imagick擴展,哇,效率速度都那叫一個快,而且效果顯著,我都是用後台 crontab 死循環隊列處理圖片加水印、縮放等等功能,特別好用。也學到了很多,我這人就愛折騰這些東西,哈哈,如果樓主時間不急,可以試試。

Ⅹ php 水印能否隨圖片大小變化

當然可以了,水印,一般都是打的字,或是另一張圖片,在你打水印的時候,給出一個比例
原圖與水印的比例,隨著原圖比例大小而改變水印圖的大小(或文字的大小)

閱讀全文

與php水印縮放相關的資料

熱點內容
h3c伺服器怎麼看功率 瀏覽:119
前端錄制文件如何上傳伺服器 瀏覽:536
雅黑pdf 瀏覽:457
python使用領域 瀏覽:880
買蘭博基尼用什麼app 瀏覽:137
android關閉後台運行 瀏覽:505
python輸出路徑為超鏈接 瀏覽:533
caxa為什麼沒有加密鎖 瀏覽:792
伺服器怎麼設置才能用IP訪問 瀏覽:663
郵件附件加密後打開能顯示嗎 瀏覽:724
榮耀x10拍照演算法 瀏覽:569
androidgradle配置簽名 瀏覽:96
文件夾左邊的空心三角符號是什麼 瀏覽:287
app英語音頻試卷掃碼怎麼聽 瀏覽:613
字元串編譯預處理 瀏覽:704
蘋果手機怎麼會顯示多個App 瀏覽:241
不去互聯網程序員 瀏覽:555
電腦qq郵箱解壓的圖片保存在哪裡 瀏覽:550
嵌入命令行 瀏覽:94
檔案為什麼被加密 瀏覽:487