PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
现在写东西都喜欢封装成类.....大家调用一下就行了..我就不说怎么调用了
class resize_image{
private $o_img_width;//原图像宽度
private $o_img_height;//原图像高度
private $n_img_width;//新图像宽度
private $n_img_height;//新图像高度
private $o_img_file;//原图像文件
private $o_img_source;//原图像资源
private $n_img_file;//新图像资源
private $n_img_source;//新图像资源
private $o_to_n_per=0.5;//图像缩放比
//初始化内部变量
function __construct($oldfile,$newfile){
list($width,$height)=getimagesize($oldfile);
$this->o_img_file=$oldfile;
$this->o_img_width=$width;
$this->o_img_height=$height;
$this->n_img_file=$newfile;
}
//等比例缩放并且解决GIF透明色为黑色背景的问题
function get_resize_scaling_img(){
$this->n_img_width=$this->o_img_width$this->o_to_n_per;
$this->n_img_height=$this->o_img_height$this->o_to_n_per;
//等比例缩放图片(算法)
if ( $this->n_img_width && ( $this->o_img_width <$this->o_img_height))
{
$this->n_img_width = ( $this->n_img_height/$this->o_img_height) $this->o_img_width;
}
else
{
$this->n_img_height = ($this->n_img_width / $this->o_img_width) $this->o_img_height;
}
$this->o_img_source=imagecreatefromgif($this->o_img_file);
//创建一个等比例缩放大小的画布
$this->n_img_source=imagecreatetruecolor($this->o_img_width,$this->n_img_height);
//美化:去除黑色不透明背景
$trans_init=imagecolortransparent($this->o_img_source);
//寻找透明色并且判断是否在总颜色中
if($trans_init>=0 && $trans_init < imagecolorstotal($this->o_img_source)){
//如果在的话则搜索这个颜色的RGB色相
$trans_index=imagecolorsforindex($this->o_img_source,$trans_init);
//找到之后就创建这样一个颜色
$trans_new=imagecolorallocate($this->n_img_source,$trans_index["red"],$trans_index["green"],$trans_index["blue"]);
//然后我们用这个颜色去填充新的图像
imagefill($this->n_img_source,0,0,$trans_new);
//然后我们在把填充色设置为透明
imagecolortransparent($this->n_img_source,$trans_new);
}
//拷贝原图像到新画板上
imagecopyresized($this->n_img_source,$this->o_img_source,0,0,0,0,$this->n_img_width,$this->n_img_height,$this->o_img_width,$this->o_img_height);
return $this->n_img_source;
}
//最终销毁资源
function __destruct(){
imagedestroy($this->o_img_source);
imagedestroy($this->n_img_source);
}
}
说明:因为先前没想那么多所以声明了很多私有的内部变量以便调用...程序看起来很笨拙啊......
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程