【上传】CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
本文实例讲述了CI框架封装的常用图像处理方法。分享给大家供大家参考,具体如下:
其实微信手机端上图时,列表图最好是缩略图,节省流量,这不,又被移动坑了一把,话费签一分就停机,流量欠到90块才停机,我也是醉了。。。
不说废话了,下面是用CI 的内置处理图像的库写的,小弟不才,遗漏之处敬请指出,谢谢。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
/**
* 生成缩略图
* @param $path 原图的本地路径
* @return null 创建一个 原图_thumb.扩展名 的文件
*
*/
publicfunctiondealthumb($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();
}
/*
* 处理图像旋转
*/
publicfunctiontransroate($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'';
}
}
/**
* 处理图像水印
*/
publicfunctionoverlay($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'';
}
}
/**
* 处理图片上传
* 文件上传类 通过前台 上传文件
*/
publicfunctionuploadfile(){
//文件上传部分
// 处理文件
// $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){
echojson_encode(array('status'=>0,'msg'=>"上传失败!"));
}else{
//上传成功
echojson_encode(array(
'name'=>$data,
'pic'=>base_url()."public/img/".$data,
'picthumb'=>$thumbdata==''?$data:$thumbdata
));
}
}
|
下面是前端的基本html代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<html>
<head>
[removed][removed]
[removed][removed]
[removed][removed]
body{background:#eeeeee; margin:0px;}
</style>
</head>
<body>
[removed]
$(function () {
/*****************图片上传部分开始 *******************/
var act = "
$("#sharepic").change(function(){
$(this).wrap(act);
$(this).parent(".myupload").ajaxSubmit({
dataType: 'json',
success: function(data) {
var src = data.pic;
//更改预览图像地址
$('#sharepic_img').attr("src",src);
$('#act_sharepic').val(data.name);
$('#sharepic').unwrap();
},
error:function(xhr){
alert(JSON.parse(xhr));
}
});
});
})
[removed]
</body>
</html>
|
更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。
您可能感兴趣的文章:
- CI框架实现优化文件上传及多文件上传的方法
- CI框架文件上传类及图像处理类用法分析
- SWFUpload与CI不能正确上传识别文件MIME类型解决方法分享
- php基于CodeIgniter实现图片上传、剪切功能
- codeigniter上传图片不能正确识别图片类型问题解决方法
- 2个Codeigniter文件批量上传控制器写法例子
- Codeigniter实现多文件上传并创建多个缩略图
- 使用CodeIgniter的类库做图片上传
- 解决Codeigniter不能上传rar和zip压缩包问题
- codeigniter教程之多文件上传使用示例
- CodeIgniter上传图片成功的全部过程分享
- CI(CodeIgniter)框架实现图片上传的方法
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:service@webmeng.net 进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
以上信息是否解决您的问题?
相关问题
- search-高级搜索
- Webmeng 2022 V13.0.1 下载地址
- wap手机网页html通过特殊链接:打电话,发短信,发邮件详细教程
- Webmeng分类导航标签,模板
- Webmeng模板路径
- Webmeng内页导航
- Webmeng三级分类
- Webmeng控制器统计实现
- PHP安装扩展mcrypt以及相关依赖项 【PHP安装PECL扩展...
- Webmeng配置字段调用
- 调用Webmeng统计数据
- PHP单页统计方法
- .PHP后缀去除方法
- WebmengSAAS 商品管理 - 新增商品
- Webmengshop 支付宝配置
- Webmeng PHP文档获取列表,非在模版环境下
- Webmeng升级说明
- Webmeng(WM)是一个轻量型的PHP优秀框架,但是它是在ap...
- 【最新发布在前面】Webmeng文章分类排序问题
- 【分页数量】Webmeng 分类 现实数量定义
- 微信 支付授权目录
- WebmengWeb 新闻分类框架代码
- 解析smarty 截取字符串函数 truncate的用法介绍
- 在模板文件中加载css、js文件
- 使用Smarty 获取当前日期时间和格式化日期时间的方法详
- CI框架常用方法小结
- 框架源码解读之利用Hook.php文件完成功能扩展的方法
- CI框架中$this->load->library()用法分析
- CI框架验证码CAPTCHA辅助函数用法实例
- CI框架的安全性分析
- CodeIgniter框架基本增删改查操作示例
- CI框架数据库查询之join用法分析
- 恬贝儿 亲子装夏季2015新款家庭雪纺套装母女休闲时装
- 恬贝儿亲子装一家三口夏 2015新款夏装母子母女春装夏季家庭套装
- 装夏装套装2015款母女装短袖韩版连衣裙一家三口家庭装
- 高配/尊爵版现货 Huawei/华为 MT7-TL10 mate7...
- 恬贝儿 亲子装夏季2015新款家庭雪纺套装母女休闲时装
- 【上传】CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
- CI框架文件上传类及图像处理类用法分析
- 国际域名.com
餐厅介绍
自助餐厅
用户评论