<?php
/* 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;
}
?>