日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php分析图片中水印的位置,关于ThinkPHP打水印及设置水印位置的分析

發(fā)布時間:2025/3/8 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php分析图片中水印的位置,关于ThinkPHP打水印及设置水印位置的分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這篇文章主要介紹了ThinkPHP打水印及設(shè)置水印位置的方法,結(jié)合實例形式分析了thinkPHP打印與設(shè)置水印的相關(guān)操作步驟與具體實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了ThinkPHP打水印及設(shè)置水印位置的方法。分享給大家供大家參考,具體如下:

最近在用Thinkphp的打水印的功能,發(fā)現(xiàn)只能打在左下角。 PHP打水印功還是很容易的,最要是用到bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct )

將 src_im 圖像中坐標(biāo)從 src_x,src_y 開始,寬度為 src_w,高度為 src_h 的一部分拷貝到 dst_im 圖像中坐標(biāo)為 dst_x 和 dst_y 的位置上。兩圖像將根據(jù) pct 來決定合并程度,其值范圍從 0 到 100。當(dāng) pct = 0 時,實際上什么也沒做,當(dāng)為 100 時對于調(diào)色板圖像本函數(shù)和 imagecopy() 完全一樣,它對真彩色圖像實現(xiàn)了 alpha 透明。

水印demo圖:

我需要把水印打到圖片的真中間,查看Thinkphp代碼。發(fā)現(xiàn),作者居然是寫死了,我只能做一個修改

/**

* 為圖片添加水印

* @static public

* @param string $source 原文件名

* @param string $water 水印圖片

* @param string $$savename 添加水印后的圖片名

* @param string $postion 水印的具體位置 leftbottom rightbottom lefttop righttop center

* @param string $alpha 水印的透明度

* @return void

*/

static public function water($source, $water, $savename=null,$postion="center", $alpha=80) {

//檢查文件是否存在

if (!file_exists($source) || !file_exists($water))

return false;

//圖片信息

$sInfo = self::getImageInfo($source);

$wInfo = self::getImageInfo($water);

//如果圖片小于水印圖片,不生成圖片

if ($sInfo["width"] < $wInfo["width"] || $sInfo['height'] < $wInfo['height']) return false; //建立圖像 $sCreateFun = "imagecreatefrom" . $sInfo['type']; $sImage = $sCreateFun($source); $wCreateFun = "imagecreatefrom" . $wInfo['type']; $wImage = $wCreateFun($water); //設(shè)定圖像的混色模式 imagealphablending($wImage, true); //圖像位置,默認(rèn)為右下角右對齊 $posArr = $this->WaterPostion($postion,$sInfo,$wInfo); //新增

//生成混合圖像

imagecopymerge($sImage, $wImage, $posArr[0], $posArr[1], 0, 0, $wInfo['width'], $wInfo['height'], $alpha);

//輸出圖像

$ImageFun = 'Image' . $sInfo['type'];

//如果沒有給出保存文件名,默認(rèn)為原圖像名

if (!$savename) {

$savename = $source;

@unlink($source);

}

//保存圖像

$ImageFun($sImage, $savename);

imagedestroy($sImage);

}

private function WaterPostion($postion,$sInfo,$wInfo)

{

$posY = $sInfo["height"] - $wInfo["height"];

$posX = $sInfo["width"] - $wInfo["width"];

switch($postion)

{

case "rightbottom":

return array($posX,$posY);

break;

case "leftbottom":

return array($wInfo["width"],$posY);

break;

case "lefttop":

return array($wInfo["width"],$wInfo["height"]);

break;

case "righttop":

return array($posX,$wInfo["height"]);

break;

case "center":

return array($posX/2,$posY/2);

break;

}

}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請關(guān)注PHP中文網(wǎng)!

相關(guān)推薦:

總結(jié)

以上是生活随笔為你收集整理的php分析图片中水印的位置,关于ThinkPHP打水印及设置水印位置的分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。