网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的范文:

 

标题 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;
    }
    }
    ?>
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/23 20:40:47