zoukankan
html css js c++ java
用于图片切割,图片压缩,缩略图的生成(转到一个好东西)
用于图片切割,图片压缩,缩略图的生成
imageCut
#region
imageCut
/**/
///
<summary>
///
图片切割函数
///
</summary>
///
<param name="sourceFile">
原始图片文件
</param>
///
<param name="xNum">
在X轴上的切割数量
</param>
///
<param name="yNum">
在Y轴上的切割数量
</param>
///
<param name="quality">
质量压缩比
</param>
///
<param name="outputFile">
输出文件名,不带后缀
</param>
///
<returns>
成功返回true,失败则返回false
</returns>
public
static
bool
imageCut(String sourceFile,
int
xNum,
int
yNum,
long
quality, String outputFile)
{
try
{
long
imageQuality
=
quality;
Bitmap sourceImage
=
new
Bitmap(sourceFile);
ImageCodecInfo myImageCodecInfo
=
GetEncoderInfo(
"
image/jpeg
"
);
Encoder myEncoder
=
Encoder.Quality;
EncoderParameters myEncoderParameters
=
new
EncoderParameters(
1
);
EncoderParameter myEncoderParameter
=
new
EncoderParameter(myEncoder, imageQuality);
myEncoderParameters.Param[
0
]
=
myEncoderParameter;
float
xWidth
=
sourceImage.Width
/
xNum;
float
yWidth
=
sourceImage.Height
/
yNum;
String outputImage
=
""
;
for
(
int
countY
=
0
; countY
<
yNum; countY
++
)
for
(
int
countX
=
0
; countX
<
xNum; countX
++
)
{
RectangleF cloneRect
=
new
RectangleF(countX
*
xWidth, countY
*
yWidth, xWidth, yWidth);
Bitmap newImage
=
sourceImage.Clone(cloneRect, PixelFormat.Format24bppRgb);
outputImage
=
outputFile
+
countX
+
countY
+
"
.jpg
"
;
newImage.Save(outputImage, myImageCodecInfo, myEncoderParameters);
}
return
true
;
}
catch
{
return
false
;
}
}
#endregion
imageCut
imageCompress
#region
imageCompress
/**/
///
<summary>
///
图片压缩函数
///
</summary>
///
<param name="sourceFile">
原始图片文件
</param>
///
<param name="quality">
质量压缩比
</param>
///
<param name="ouputFile">
输出文件名,请用 .jpg 后缀
</param>
///
<returns>
成功返回true,失败则返回false
</returns>
public
static
bool
imageCompress(String sourceFile,
long
quality,String outputFile)
{
try
{
long
imageQuality
=
quality;
Bitmap sourceImage
=
new
Bitmap(sourceFile);
ImageCodecInfo myImageCodecInfo
=
GetEncoderInfo(
"
image/jpeg
"
);
Encoder myEncoder
=
Encoder.Quality;
EncoderParameters myEncoderParameters
=
new
EncoderParameters(
1
);
EncoderParameter myEncoderParameter
=
new
EncoderParameter(myEncoder, imageQuality);
myEncoderParameters.Param[
0
]
=
myEncoderParameter;
sourceImage.Save(outputFile, myImageCodecInfo, myEncoderParameters);
return
true
;
}
catch
{
return
false
;
}
}
#endregion
imageCompress
getThumImage
#region
getThumImage
/**/
///
<summary>
///
生成缩略图
///
</summary>
///
<param name="sourceFile">
原始图片文件
</param>
///
<param name="quality">
质量压缩比
</param>
///
<param name="multiple">
收缩倍数
</param>
///
<param name="outputFile">
输出文件名
</param>
///
<returns>
成功返回true,失败则返回false
</returns>
public
static
bool
getThumImage(String sourceFile,
long
quality,
int
multiple, String outputFile)
{
try
{
long
imageQuality
=
quality;
Bitmap sourceImage
=
new
Bitmap(sourceFile);
ImageCodecInfo myImageCodecInfo
=
GetEncoderInfo(
"
image/jpeg
"
);
Encoder myEncoder
=
Encoder.Quality;
EncoderParameters myEncoderParameters
=
new
EncoderParameters(
1
);
EncoderParameter myEncoderParameter
=
new
EncoderParameter(myEncoder, imageQuality);
myEncoderParameters.Param[
0
]
=
myEncoderParameter;
float
xWidth
=
sourceImage.Width;
float
yWidth
=
sourceImage.Height;
Bitmap newImage
=
new
Bitmap((
int
)(xWidth
/
multiple), (
int
)(yWidth
/
multiple));
Graphics g
=
Graphics.FromImage(newImage);
g.DrawImage(sourceImage,
0
,
0
, xWidth
/
multiple, yWidth
/
multiple);
g.Dispose();
newImage.Save(outputFile,myImageCodecInfo,myEncoderParameters);
return
true
;
}
catch
{
return
false
;
}
}
#endregion
getThumImage
ImageCodecInfo
#region
ImageCodecInfo
/**/
///
<summary>
///
获取图片编码信息
///
</summary>
private
static
ImageCodecInfo GetEncoderInfo(String mimeType)
{
int
j;
ImageCodecInfo[] encoders;
encoders
=
ImageCodecInfo.GetImageEncoders();
for
(j
=
0
; j
<
encoders.Length;
++
j)
{
if
(encoders[j].MimeType
==
mimeType)
return
encoders[j];
}
return
null
;
}
#endregion
ImageCodeInfo
查看全文
相关阅读:
20145204《信息安全系统设计基础》期中总结
20145204&20145212信息安全系统实验一报告
k8s运维记
服务器免密登录
非正常关闭vi编辑器产生swp文件怎么删除
centos7 安装 python3 、docker、 docker-compose 脚本
数据库高可用方案
centos7安装docker-compose报错解决办法
centos7 一键安装python3 --转发
安装docker-compose的两种方式
原文地址:https://www.cnblogs.com/skyblue/p/867045.html
最新文章
Hive配置项的含义详解
MR案例:基站相关01
Day22-CSRF跨站请求伪造
Day22-session
Day22-1-知识回顾
转载--------Python中:self和__init__的含义 + 为何要有self和__init__
Day21-Cookie
Day21-自定义分页
Day21-自定义simple_tag/filter
Day21-模板之继承
热门文章
Day21-获取用户请求相关信息及请求头
知识回顾
20145204 张亚军《信息安全系统设计基础》第12周学习总结
20145204&20145212实验二报告
20145204&20145212信息安全系统实验四报告
《信息安全系统设计基础》第11周学习总结
20145204 张亚军《信息安全系统设计基础》第10周学习总结
20145204&20145212信息安全系统实验三报告
20145204信息安全设计基础实验报告
20145204 张亚军《信息安全系统设计基础》第九周学习总结
Copyright © 2011-2022 走看看