php实现水印图功能

您好,欢迎来到百闽人生网登录 注册

百闽首页 | 考试日历 | 百闽娱乐 | 书信频道 | 节日庆典 | 语录句子 | 免费发布培训课程

百闽人生网

百闽人生网 > 培训新闻 > 电脑/IT > php实现水印图功能

php实现水印图功能

php实现水印图功能.

测试水印的文件代码:

<?php

require( "./WaterMark.class.php" );

$water = new WaterMark( "./images/psb.jpg", "./images/200(1).jpg" );

$water->Exec( "./images/w.jpg", "center-center" );

?>

水印功能的文件代码:

<?php

/**

* Add water stain to specified image

* @author pankai<>

* @date 2013-09-27

*/

class WaterMark {

/* Image source path */

private $_src_path = NULL;

private $_image_source = NULL;

/* Water-Stain image source path */

private $_water_path = NULL;

private $_water_source = NULL;

private $_extension = NULL;

public function __construct( $_src_path, $_water_path ) {

$this->_src_path = $_src_path;

$this->_water_path = $_water_path;

}

/**

* Get image source form image designated path

* @param $_img_path

* @return resource

*/

private function getImageSource( $_img_path ) {

$_path = explode( ".", strtolower( $_img_path ) );

$_bak = strtoupper( $_path[ sizeof( $_path ) - 1 ] );

$_img_source = NULL;

$this->_extension = $_bak;

switch( $_bak ) {

case "GIF":

$_img_source = @imagecreatefromgif( $_img_path );

break;

case "JPG":

case "JPEG":

$_img_source = @imagecreatefromjpeg( $_img_path );

break;

case "PNG":

$_img_source = @imagecreatefrompng( $_img_path );

break;

case "WBMP":

$_img_source = @imagecreatefromwbmp( $_img_path );

break;

}

return $_img_source;

}

/**

* Count coordinate

* @param $direction string

* @return array

*/

private function countArgs( &$_src, &$_water, $_direction ) {

$_args = NULL;

/**

* Count the image"s width and image"s height

* which are used to show Water-Stain image arbitrarily

*/

$src_x = imagesx( $_src );

$src_y = imagesy( $_src );

$water_x = imagesx( $_water );

$water_y = imagesy( $_water );

switch( strtolower( $_direction ) ) {

case "top-left":

$_args = array( 0, 0 );

break;

case "top-center":

$_args = array( floor( ( $src_x - $water_x ) / 2 ), 0 );

break;

case "top-right":

$_args = array( $src_x - $water_x, 0 );

break;

case "center-left":

$_args = array( 0, floor( ( $src_y - $water_y ) / 2 ) );

break;

case "center-center":

$_args = array( floor( ( $src_x - $water_x ) / 2 ), floor( ( $src_y - $water_y ) / 2 ) );

break;

case "center-right":

$_args = array( $src_x - $water_x, floor( ( $src_y - $water_y ) / 2 ) );

break;

case "bottom-left":

$_args = array( 0, $src_y - $water_y );

break;

case "bottom-center":

$_args = array( floor( ( $src_x - $water_x ) / 2 ), $src_y - $water_y );

break;

case "bottom-right":

$_args = array( $src_x - $water_x, $src_y - $water_y );

break;

}

return $_args;

}

/**

* The main programmer: copy Water-Stain image source into specified image source,

* then save this into appointed path

* @param $dst_name

* @return bool

*/

public function Exec( $dst_name, $direction = "bottom-right" ) {

$this->_image_source = &$this->getImageSource( $this->_src_path );

$this->_water_source = &$this->getImageSource( $this->_water_path );

$water_x = imagesx( $this->_water_source );

$water_y = imagesy( $this->_water_source );

$_args = $this->countArgs( $this->_image_source, $this->_water_source, $direction );

$_copy = imagecopy( $this->_image_source, $this->_water_source,

abs( $_args[ 0 ] ), abs( $_args[ 1 ] ), 0, 0, $water_x, $water_y );

$_out = true;

/* imagejpeg( $this->img_dst, $dst_name, 100 ); */

switch ( $this->_extension ) {

case "GIF":

$_out = imagegif( $this->_image_source, $dst_name );

break;

case "JPG":

case "JPEG":

$_out = imagejpeg( $this->_image_source, $dst_name, 100 );

break;

case "PNG":

$_out = imagepng( $this->_image_source, $dst_name );

break;

case "WBMP":

$_out = imagewbmp( $this->_image_source, $dst_name );

}

return $_copy && $_out;

}

}

?>


首页 1 2 下页 

关于我们 | 招生合作 | 负责声明 | 常见问题 | 诚聘英才 | 联系我们

Copyright©2014 www.bminlife.com 百闽人生网 版权所有©百闽人生网 闽ICP备14001301号
本文标题:php实现水印图功能
分站加盟及广告服务QQ:1476191318
友情提示:本站所有信息均由本站注册会员免费发布,如涉及版权问题或虚假信息请及时与本站联系。——我们一直在追求真实!