CI框架封装的常用图像处理方法有哪些
发表于:2024-09-29 作者:千家信息网编辑
千家信息网最后更新 2024年09月29日,本篇文章为大家展示了CI框架封装的常用图像处理方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。其实微信手机端上图时,列表图最好是缩略图,节省流量,这不
千家信息网最后更新 2024年09月29日CI框架封装的常用图像处理方法有哪些
本篇文章为大家展示了CI框架封装的常用图像处理方法有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
其实微信手机端上图时,列表图最好是缩略图,节省流量,这不,又被移动坑了一把,话费签一分就停机,流量欠到90块才停机,我也是醉了。。。
不说废话了,下面是用CI 的内置处理图像的库写的
/*** 生成缩略图* @param $path 原图的本地路径* @return null 创建一个 原图_thumb.扩展名 的文件**/public function dealthumb($path){ $config['image_library'] = 'gd2'; $config['source_image'] = $path; $config['create_thumb'] = TRUE; //生成的缩略图将在保持纵横比例 在宽度和高度上接近所设定的width和height $config['maintain_ratio'] = TRUE; $config['width'] = 80; $config['height'] = 80; $this->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'], 0,$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代码:
(最佳大小为 80 X 80 像素 )
上述内容就是CI框架封装的常用图像处理方法有哪些,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
文件
图像
处理
路径
生成
大小
字体
文字
类型
部分
图像处理
常用
方法
框架
封装
信息
内容
原图
名字
品质
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
北京afc设备软件开发招聘
服务器机柜一般是从上往下装还是
天穹宝可梦服务器注册密码
我的世界服务器沙子怎么不掉落
网络安全3年级手抄报
软件开发开发开发培训机构
pm5软件开发
手机软件开发app图片
黄浦区服务器回收价格
数据库如何统计各系名称
数据库中为什么少了一些文件
电气工程软件开发
l数据库tnd文件
外文数据库的安全性
张家口软件开发者在线咨询
Redseq数据库
服务器维护计划
数据库表的关系是什么
联通斗鱼免流量服务器
更新数据库表的语句怎么写
软件开发语言多少钱
融合网络技术服务
济南软件开发定制公司哪家好
神话下载软件开发
深圳恒生互联网科技
网络安全保护制度分层
临沂海德拉网络技术有限公司
北京网络安全专家工资待遇
河北新一代网络技术服务推广
游戏服务器的架构