找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1429|回复: 0
打印 上一主题 下一主题

PHP的一个完美GIF等比缩放类,附带去除缩放黑背景

[复制链接]

2588

主题

2588

帖子

7694

积分

论坛元老

Rank: 8Rank: 8

积分
7694
跳转到指定楼层
楼主
发表于 2018-2-14 05:59:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            现在写东西都喜欢封装成类.....大家调用一下就行了..我就不说怎么调用了
[U]复制代码[/U] 代码如下:
   //初始化内部变量
   function __construct($oldfile,$newfile){
       list($width,$height)=getimagesize($oldfile);
       $this->o_$oldfile;
       $this->o_$width;
       $this->o_$height;
       $this->n_$newfile;
   }
   //等比例缩放并且解决GIF透明色为黑色背景的问题
   function get_resize_scaling_img(){
       $this->n_$this->o_*$this->o_to_n_per;
       $this->n_$this->o_*$this->o_to_n_per;
       //等比例缩放图片(算法)
       if ( $this->n_( $this->o_))
       {
             $this->n_( $this->n_$this->o_) * $this->o_;
       }
       else
       {
            $this->n_($this->n_$this->o_) * $this->o_;
       }
       $this->o_($this->o_);
       //创建一个等比例缩放大小的画布
       $this->n_($this->o_,$this->n_);
       //美化:去除黑色不透明背景
       $trans_init=imagecolortransparent($this->o_);
       //寻找透明色并且判断是否在总颜色中
       if($trans_init>=0 && $trans_init o_)){
           //如果在的话则搜索这个颜色的RGB色相
           $trans_index=imagecolorsforindex($this->o_,$trans_init);
           //找到之后就创建这样一个颜色
           $trans_new=imagecolorallocate($this->n_,$trans_index["red"],$trans_index["green"],$trans_index["blue"]);
           //然后我们用这个颜色去填充新的图像
           imagefill($this->n_,0,0,$trans_new);
           //然后我们在把填充色设置为透明
           imagecolortransparent($this->n_,$trans_new);
       }
       //拷贝原图像到新画板上
       imagecopyresized($this->n_,$this->o_,0,0,0,0,$this->n_,$this->n_,$this->o_,$this->o_);
       return $this->n_;
   }
   //最终销毁资源
   function __destruct(){
       imagedestroy($this->o_);
       imagedestroy($this->n_);
   }
}
说明:因为先前没想那么多所以声明了很多私有的内部变量以便调用...程序看起来很笨拙啊......
            
            
您可能感兴趣的文章:
  • 完美实现GIF动画缩略图的php代码
  • PHP支持多种格式图片上传(支持jpg、png、gif)
  • PHP之生成GIF动画的实现方法
  • PHP生成Gif图片验证码
  • php调整gif动画图片尺寸示例代码分享
  • PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
  • PHP使用GIFEncoder类生成的GIF动态图片验证码
  • PHP使用GIFEncoder类生成gif动态滚动字幕
  • PHP使用GIFEncoder类处理gif图片实例
  • php判断GIF图片是否为动画的方法
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端