本文实例讲述了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 == '' "htmlcode"><!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <link rel="stylesheet" href="/public/stylesheets/bootstrap.min.css" /> <link rel="stylesheet" href="/public/stylesheets/bootstrap-responsive.min.css" /> <link rel="stylesheet" href="/public/stylesheets/matrix-style.css" /> <link rel="stylesheet" href="/public/stylesheets/matrix-media.css" /> <script type="text/javascript" src="/UploadFiles/2021-04-02/jquery.min.js">更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。
CI框架,封装,图像处理
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。