- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章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.扩展名 的文件
*
*/
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代码:
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
|
<!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
=
"/public/javascripts/jquery.min.js"
></
script
>
<
script
type
=
"text/javascript"
src
=
"/public/javascripts/jquery.form.js"
></
script
>
<
script
type
=
"text/javascript"
src
=
"/public/javascripts/jquery.validate.js"
></
script
>
<
style
type
=
"text/css"
>
body{background:#eeeeee; margin:0px;}
</
style
>
</
head
>
<
body
>
<
div
class
=
"control-group"
>
<
label
class
=
"control-label"
> 分享logo: </
label
>
<
div
class
=
"controls"
>
<
input
type
=
"file"
name
=
"sharepic"
id
=
"sharepic"
/>
<
input
type
=
"hidden"
name
=
"act_sharepic"
value
=
""
id
=
"act_sharepic"
/>(<
sapn
class
=
"fred"
>最佳大小为 80 X 80 像素</
sapn
>)
<
p
style
=
"margin:20px 0;"
><
img
src
=
"/public/img/default.png"
alt
=
""
id
=
"sharepic_img"
></
p
>
</
div
>
</
div
>
<
script
type
=
"text/javascript"
>
$(function () {
/*****************图片上传部分开始 *******************/
var act = "<
form
class
=
'myupload'
action
=
'"+"<?php echo site_url('
mytest/uploadfile');?>"+"' method='post' enctype='multipart/form-data'></
form
>";
$("#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));
}
});
});
})
</
script
>
</
body
>
</
html
>
|
希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助.
最后此篇关于CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)的文章就讲到这里了,如果你想了解更多关于CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
...沮丧。我希望我的游戏仅在横向模式下运行。我已将适当的键/值添加到 Info.plist 文件中,以强制设备方向在启动时正确。 我现在正在尝试旋转 OpenGL 坐标空间以匹配设备的坐标空间。我正
我如何创建一个旋转矩阵,将 X 旋转 a,Y 旋转 b,Z 旋转 c? 我需要公式,除非您使用的是 ardor3d api 的函数/方法。 矩阵是这样设置的 xx, xy, xz, yx, yy, y
假设我有一个包含 3 个 vector 的类(一个用于位置,一个用于缩放,一个用于旋转)我可以使用它们生成一个变换矩阵,该矩阵表示对象在 3D 空间中的位置、旋转和大小。然后我添加对象之间的父/子关系
所以我只是在玩一个小的 javascript 游戏,构建一个 pacman 游戏。你可以在这里看到它:http://codepen.io/acha5066/pen/rOyaPW 不过我对旋转有疑问。你
在我的应用程序中,我有一个 MKMapView,其中显示了多个注释。 map 根据设备的航向旋转。要旋转 map ,请执行以下语句(由方法 locationManager 调用:didUpdateHe
使用此 jquery 插件时:http://code.google.com/p/jqueryrotate/wiki/Documentation我将图像旋转 90 度,无论哪个方向,它们最终都会变得模糊
我有以下代码:CSS: .wrapper { margin:80px auto; width:300px; border:none; } .square { widt
本篇介绍Manim中的两个旋转类的动画,名称差不多,分别是Rotate和Rotating。 Rotate类主要用于对图形对象进行指定角度、围绕特定点的精确旋转,适用于几何图形演示、物理模拟和机械运动
我只想通过小部件的轴移动图像并围绕小部件的中心旋转(就像任何数字绘画软件中的 Canvas ),但它围绕其左顶点旋转...... QPainter p(this); QTransform trans;
我需要先旋转图像,然后再将其加载到 Canvas 中。据我所知,我无法使用 canvas.rotate() 旋转它,因为它会旋转整个场景。 有没有好的JS方法来旋转图片? [不依赖于浏览器的方式] 最
我需要知道我的 Android 设备屏幕何时从一个横向旋转到另一个横向(rotation_90 到 rotation_270)。在我的 Android 服务中,我重新实现了 onConfigurati
**摘要:**本篇文章主要讲解Python调用OpenCV实现图像位移操作、旋转和翻转效果,包括四部分知识:图像缩放、图像旋转、图像翻转、图像平移。 本文分享自华为云社区《[Python图像处理] 六
我只是在玩MTKView中的模板设置;并且,我一直在尝试了解以下内容: 相机的默认位置。 使用MDLMesh和MTKMesh创建基元时的默认位置。 为什么轮换还涉及翻译。 相关代码: matrix_f
我正在尝试使用包 dendexend 创建一个树状图。它创建了非常好的 gg 树状图,但不幸的是,当你把它变成一个“圆圈”时,标签跟不上。我将在下面提供一个示例。 我的距离对象在这里:http://s
我想将一个完整的 ggplot 对象旋转 90°。 我不想使用 coord_flip因为这似乎会干扰 scale="free"和 space="free"使用刻面时。 例如: qplot(as.fac
我目前可以通过首先平移到轴心点然后执行旋转最后平移回原点来围绕轴心点旋转。在我的例子中,我很容易为肩膀做到这一点。但是,我不知道如何为前臂添加绕肘部的旋转。 我已经尝试了以下围绕肘部旋转的前臂: 平移
我想使用此功能旋转然后停止在特定点或角度。现在该元素只是旋转而不停止。代码如下: $(function() { var $elie = $("#bkgimg");
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 4 年前。 Improve this ques
我正在尝试创建一个非常简单的关键帧动画,其中图形通过给定的中点从一个角度旋转到另一个角度。 (目的是能够通过大于 180 度的 OBTUSE 弧角来制作旋转动画,而不是让动画“作弊”并走最短路线,即通
我需要旋转 NSView 实例的框架,使其宽度变为其高度,其高度变为其宽度。该 View 包含一个字符串,并且该字符串也被旋转,这一点很重要。 我查看了 NSView 的 setFrameRotati
我是一名优秀的程序员,十分优秀!