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
查看全文
相关阅读:
snmp实用篇
使用snmp4j实现Snmp功能(三)
使用snmp4j实现Snmp功能(二)
使用snmp4j实现Snmp功能(一)
“百度杯”CTF比赛 九月场_Test(海洋cms前台getshell)
“百度杯”CTF比赛 九月场_123(文件备份,爆破,上传)
“百度杯”CTF比赛 九月场_SQLi
“百度杯”CTF比赛 九月场_SQL
“百度杯”CTF比赛 九月场_再见CMS(齐博cms)
“百度杯”CTF比赛 九月场_YeserCMS
原文地址:https://www.cnblogs.com/skyblue/p/867045.html
最新文章
leetcode 168 Excel Sheet Column Title
leetcode 316 Remove Duplicate Letters
leetcode 38 Count and Say
leetcode 179 Largest Number
Github第三方登录
按值传递还是引用传递?
三次握手四次挥手
RabbitMQ入门
Docker
绘制验证码
热门文章
SpringSecurity
小根堆的Java实现
单点登录
DFS与BFS
微信打开网址添加在浏览器中打开提示
如何给apk文件签名
jquery 获取和设置 select下拉框的值
PhoneGap API介绍:Camera
PhoneGap API介绍:File
在eclipse中安装html编辑器插件
Copyright © 2011-2022 走看看