php 給圖片加浮水印_PHP教程

來源:互聯網
上載者:User
/* ClassName: ImageHandler
* Filename: ImageHandler.phpcls
* Author: Tony Don
* Date: 2008-03-27
* @Copyright txdnet.com
* Function: Handler Images
*/

class ImageHandler
{
var $dst_img;// 目標檔案
var $h_src; // 圖片資源控制代碼
var $h_dst;// 新圖控制代碼
var $h_mask;// 浮水印控制代碼
var $img_create_quality = 100;// 圖片產生品質
var $img_display_quality = 80;// 圖片顯示品質,預設為75
var $img_scale = 0;// 圖片縮放比例
var $src_w = 0;// 原圖寬度
var $src_h = 0;// 原圖高度
var $dst_w = 0;// 新圖總寬度
var $dst_h = 0;// 新圖總高度
var $fill_w;// 填充圖形寬
var $fill_h;// 填充圖形高
var $copy_w;// 拷貝圖形寬
var $copy_h;// 拷貝圖形高
var $src_x = 0;// 原圖繪製起始橫座標
var $src_y = 0;// 原圖繪製起始縱座標
var $start_x;// 新圖繪製起始橫座標
var $start_y;// 新圖繪製起始縱座標
var $mask_word;// 浮水印文字
var $mask_img;// 浮水印圖片
var $mask_pos_x = 0;// 浮水印橫座標
var $mask_pos_y = 0;// 浮水印縱座標
var $mask_offset_x = 5;// 浮水印橫向位移
var $mask_offset_y = 5;// 浮水印縱向位移
var $font_w;// 浮水印字型寬
var $font_h;// 浮水印字型高
var $mask_w;// 浮水印寬
var $mask_h;// 浮水印高
var $mask_font_color = "#000000";// 浮水印文字顏色
var $mask_font = 5;// 浮水印字型
var $font_size;// 尺寸
var $mask_position = 0;// 浮水印位置
var $mask_img_pct = 50;// 圖片合并程度,值越大,合并程式越低
var $mask_txt_pct = 50;// 文字合并程度,值越小,合并程式越低
var $img_border_size = 0;// 圖片邊框尺寸
var $img_border_color;// 圖片邊框顏色
var $_flip_x=0;// 水平翻轉次數
var $_flip_y=0;// 垂直翻轉次數
var $cut_type=0;// 剪下或縮小類型
var $img_type;// 檔案類型

// 檔案類型定義,並指出了輸出圖片的函數
var $all_type = array(
"jpg" => array("output"=>"imagejpeg"),
"gif" => array("output"=>"imagegif"),
"png" => array("output"=>"imagepng"),
"wbmp" => array("output"=>"image2wbmp"),
"jpeg" => array("output"=>"imagejpeg"));
/**
* 建構函式
*/
function ImageHandler()
{
$this->mask_font_color = "#ffffff";
$this->font = 2;
$this->font_size = 12;
}
/**
* 取得圖片的寬
*/
function getImgWidth($src)
{
return imagesx($src);
}
/**
* 取得圖片的高
*/
function getImgHeight($src)
{
return imagesy($src);
}
/**
* 設定圖片產生路徑
*
* @param string $src_img 圖片產生路徑
*/
function setSrcImg($src_img, $img_type=null)
{
if(!file_exists($src_img))
{
die("圖片不存在");
}

if(!empty($img_type))
{
$this->img_type = $img_type;
}
else
{
$this->img_type = $this->_getImgType($src_img);
}

$this->_checkValid($this->img_type);

// file_get_contents函數要求php版本>4.3.0
$src = '';
if(function_exists("file_get_contents"))
{
$src = file_get_contents($src_img);
}
else
{
$handle = fopen ($src_img, "r");
while (!feof ($handle))
{
$src .= fgets($fd, 4096);
}
fclose ($handle);
}
if(empty($src))
{
die("圖片源為空白");
}
$this->h_src = @ImageCreateFromString($src);
$this->src_w = $this->getImgWidth($this->h_src);
$this->src_h = $this->getImgHeight($this->h_src);
}

/**
* 設定圖片產生路徑
*
* @param string $dst_img 圖片產生路徑
*/
function setDstImg($dst_img)
{
$arr = explode('/',$dst_img);
$last = array_pop($arr);
$path = implode('/',$arr);
$this->_mkdirs($path);
$this->dst_img = $dst_img;
}

/**
* 設定圖片的顯示品質
*
* @param string $n 品質
*/
function setImgDisplayQuality($n)
{
$this->img_display_quality = (int)$n;
}

/**
* 設定圖片的產生品質
*
* @param string $n 品質
*/
function setImgCreateQuality($n)
{
$this->img_create_quality = (int)$n;
}

/**
* 設定文字浮水印
*
* @param string $word 浮水印文字
* @param integer $font 浮水印字型
* @param string $color 浮水印字型顏色
*/
function setMaskWord($word)
{
$this->mask_word .= $word;
}

/**
* 設定字型顏色
*
* @param string $color 字型顏色
*/
function setMaskFontColor($color="#ffffff")
{
$this->mask_font_color = $color;
}

?>


http://www.bkjia.com/PHPjc/445073.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445073.htmlTechArticle?php /* ClassName: ImageHandler * Filename: ImageHandler.phpcls * Author: Tony Don * Date: 2008-03-27 * @Copyright txdnet.com * Function: Handler Images */ class ImageHandler { var...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.