本文实例讲述了CI框架封装的常用图像处理方法。分享给大家供大家参考,具体如下:
其实微信手机端上图时,列表图最好是缩略图,节省流量,这不,又被移动坑了一把,话费签一分就停机,流量欠到90块才停机,我也是醉了。。。
不说废话了,下面是用CI 的内置处理图像的库写的,小弟不才,遗漏之处敬请指出,谢谢。
load->library('image_lib',$config);
$this->image_lib->resize();
$this->image_lib->clear();
}
/*
* 处理图像旋转
*/
public function transroate($path,$imgpath){
$this->load->library('image_lib');
//(必须)设置图像库
$config['image_library'] = 'gd2';
$newname = time().'_rote.jpg';
//设置图像的目标名/路径
$config['new_image'] =$imgpath.$newname;
//(必须)设置原始图像的名字/路径
$config['source_image'] = $path;
//决定新图像的生成是要写入硬盘还是动态的存在
$config['dynamic_output'] = FALSE;
//设置图像的品质。品质越高,图像文件越大
$config['quality'] = '90%';
//有5个旋转选项 逆时针90 180 270 度 vrt 竖向翻转 hor 横向翻转
$config['rotation_angle'] = 'vrt';
$this->image_lib->initialize($config);
if(@$this->image_lib->rotate()){
$this->image_lib->clear();
return $config['new_image'];
}else{
$this->image_lib->clear();
return '';
}
}
/**
* 处理图像水印
*/
public function overlay($path,$imgpath){
$this->load->library('image_lib');
$newname = time().'_over.jpg';
//设置新图像名称
$config['new_image'] =$imgpath.$newname;
//调用PHP gd库 绘图
$config['image_library'] = 'gd2';
//源图像 本地地址
$config['source_image'] = $path;
//覆盖文字
$config['wm_text'] = 'Copyright 2015 - Friker';
//覆盖类型 文字/图像
$config['wm_type'] = 'text';
//文字字体类型
//$config['wm_font_path'] = 'C:\Windows\Fonts\vrinda.ttf';
//字体大小
$config['wm_font_size'] = '16';
//字体颜色
$config['wm_font_color'] = 'ff0000';
//垂直方向距离顶端距离
$config['wm_vrt_alignment'] = '20';
//水平方向距离左端距离
$config['wm_hor_alignment'] = 'center';
//padding
$config['wm_padding'] = '20';
$this->image_lib->initialize($config);
if($this->image_lib->watermark()){
$this->image_lib->clear();
return $config['new_image'];
}else{
$this->image_lib->clear();
return '';
}
}
/**
* 处理图片上传
* 文件上传类 通过前台 上传文件
*/
public function uploadfile(){
//文件上传部分
// 处理文件
// $data = '';
$this->load->helper('url');
$formpic = key($_FILES);
//文件处理部分
if(false === empty($_FILES[$formpic]['tmp_name'])){
//设置文件上传的路径
$upload['upload_path'] = "./public/img/";
//限制文件上传的类型
$upload['allowed_types'] = 'jpeg|jpg|gif|png';
//限制文件上传的大小
$upload['max_size'] = 2048;
//设置文件上传的路径
$upload['file_name'] = date('YmdHis',time()).rand(10000,99999);
//加载文件上传配置信息
$this->load->library('upload',$upload);
//处理文件上传
$this->upload->do_upload($formpic);
//返回文件上传信息
$image = $this->upload->data();
/*
'file_name' => string '2015071702051718388.jpg' (length=23)
'file_type' => string 'image/jpeg' (length=10)
'file_path' => string 'E:/wamp/www/testci/public/img/' (length=30)
'full_path' => string 'E:/wamp/www/testci/public/img/2015071702051718388.jpg' (length=53)
'raw_name' => string '2015071702051718388' (length=19)
'orig_name' => string '2015071702051718388.jpg' (length=23)
'client_name' => string 'u=415761610,1548338330&fm=116&gp=0.jpg' (length=38)
'file_ext' => string '.jpg' (length=4)
'file_size' => float 3.74
'is_image' => boolean true
'image_width' => int 146
'image_height' => int 220
'image_type' => string 'jpeg' (length=4)
'image_size_str' => string 'width="146" height="220"' (length=24)
*/
//var_dump($image);
//返回文件上传名字
$data = $image['file_name'];
$this->dealthumb($image['full_path']);
$this->overlay($image['full_path'],$image['file_path']);
$this->transroate($image['full_path'],$image['file_path']);//
$thumbdata = '';
//生成缩略图名称
$pos = strripos($image['file_name'],".");
$newname = substr($image['file_name'],$pos)."_thumb".substr($image['file_name'],$pos);
if(file_exists($image['file_path'].$newname)){
$thumbdata = $newname;
}
}
//$dirroot = $_SERVER['DOCUMENT_ROOT'];
//$this->dealthumb($dirroot."/public/img/".$data);
//上传失败
if(!$data){
echo json_encode(array('status'=>0,'msg'=>"上传失败!"));
}else{
//上传成功
echo json_encode(array(
'name'=>$data,'pic'=>base_url()."public/img/".$data,'picthumb'=>$thumbdata == '' ?$data:$thumbdata
));
}
}
下面是前端的基本HTML代码:
<Meta charset="utf-8">
更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》及《PHP常见数据库操作技巧汇总》
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。