zoukankan
html css js c++ java
asp.net中生成缩略图,并在图片上加入图片版板等信息
//
定义image类的对象
Drawing.Image image,newimage;
//
图片路径
protected
string
imagePath;
//
图片类型
protected
string
imageType;
//
图片名称
protected
string
imageName;
//
提供一个回调方法,用于确定Image对象在执行生成缩略图操作时何时提前取消执行
//
如果此方法确定 GetThumbnailImage 方法应提前停止执行,则返回 true;否则返回 false
System.Drawing.Image.GetThumbnailImageAbort callb
=
null
;
private
void
sm_Click(
object
sender, System.EventArgs e)
{
string
mPath;
if
(
""
!=
File1.PostedFile.FileName)
//
File1为上传文件控件
{
imagePath
=
File1.PostedFile.FileName;
//
取得图片类型
imageType
=
imagePath.Substring(imagePath.LastIndexOf(
"
.
"
)
+
1
);
//
取得图片名称
imageName
=
imagePath.Substring(imagePath.LastIndexOf(
"
\\
"
)
+
1
);
//
判断是否是JPG或者GIF图片,这里只是举个例子,并不一定必须是这两种图片
if
(
"
jpg
"
!=
imageType
&&
"
gif
"
!=
imageType)
{
Response.Write(
"
<script language='javascript'> alert('对不起!请您选择jpg或者gif格式的图片!');</script>
"
);
return
;
}
else
{
try
{
//
建立虚拟路径
mPath
=
Server.MapPath(
"
UploadFiles
"
);
//
保存到虚拟路径
File1.PostedFile.SaveAs(mPath
+
"
\\
"
+
imageName);
//
显示原图, imageSource为图片控件
//
imageSource.ImageUrl = "UploadFiles/"+imageName;
//
为上传的图片建立引用
image
=
System.Drawing.Image.FromFile(mPath
+
"
\\
"
+
imageName);
//
生成缩略图
newimage
=
image.GetThumbnailImage(
200
,
200
,callb,
new
System.IntPtr());
//
把缩略图保存到指定的虚拟路径
newimage.Save(Server.MapPath(
"
UploadFiles
"
)
+
"
\\small
"
+
imageName);
//
释放image对象占用的资源
image.Dispose();
//
释放newimage对象的资源
newimage.Dispose();
//
显示缩略图
AddTextToImg (
"
UploadFiles/
"
+
"
small
"
+
imageName,
"
Pic Info
"
);
//
在图片上加入信息说明
Image1.ImageUrl
=
"
UploadFiles/
"
+
"
small
"
+
imageName;
Script.Alert(
"
上传成功!
"
);
}
catch
{
Script.Alert(
"
上传失败!
"
);
}
}
//
end else
}
//
在图片上加入自己的信息,
//
AddTextToImg (physicPath,"Pic Info");
private
void
AddTextToImg(
string
fileName,
string
text)
{
//
string sss = MapPath(fileName);
if
(
!
File.Exists ( fileName))
{
throw
new
FileNotFoundException(
"
The file don't exist!
"
);
}
//
还需要判断文件类型是否为图像类型,这里就不赘述了
System.Drawing.Image image
=
System.Drawing.Image.FromFile(fileName);
//
MapPath(fileName));
Bitmap bitmap
=
new
Bitmap(image,image.Width,image.Height);
Graphics g
=
Graphics.FromImage(bitmap);
float
fontSize
=
22.0f
;
//
字体大小
float
textWidth
=
text.Length
*
fontSize;
//
文本的长度
//
下面定义一个矩形区域,以后在这个矩形里画上白底黑字
float
rectX
=
0
;
float
rectY
=
0
;
float
rectWidth
=
text.Length
*
(fontSize
+
18
);
float
rectHeight
=
fontSize
+
18
;
//
声明矩形域
RectangleF textArea
=
new
RectangleF(rectX,rectY,rectWidth,rectHeight);
Font font
=
new
Font(
"
宋体
"
,fontSize);
//
定义字体
Brush whiteBrush
=
new
SolidBrush(Color.White);
Brush blackBrush
=
new
SolidBrush(Color.Black);
g.FillRectangle(blackBrush,rectX,rectY,rectWidth,rectHeight);
g.DrawString(text,font,whiteBrush,textArea);
MemoryStream ms
=
new
MemoryStream();
//
保存为Jpg类型
bitmap.Save(ms,ImageFormat.Jpeg);
//
输出处理后的图像,这里为了演示方便,我将图片显示在页面中了
/**/
/*
Response.Clear();
Response.ContentType = "image/jpeg";
Response.BinaryWrite( ms.ToArray() );
*/
FileStream fs
=
new
FileStream(fileName, FileMode.OpenOrCreate);
//
.CreateNew);
fs.Write(ms.ToArray(),
0
,ms.ToArray().Length);
fs.Close();
Image1.ImageUrl
=
fileName;
//
将图片显示在Image控件中
g.Dispose();
bitmap.Dispose();
image.Dispose();
}
查看全文
相关阅读:
刷题-力扣-414. 第三大的数
刷题-力扣-976. 三角形的最大周长
刷题-力扣-942. 增减字符串匹配
刷题-力扣-409. 最长回文串
扛把子组20191121-4 Final发布用户使用报告
Scrum立会报告+燃尽图 07
Final发布
扛把子组20191121-3 Final阶段贡献分配规则
扛把子组20191121-10 Scrum立会报告+燃尽图 06
Scrum立会报告+燃尽图 05
原文地址:https://www.cnblogs.com/chaodongwang/p/888881.html
最新文章
20201022-1 每周例行报告
20201015-3 每周例行报告
作业要求 20201008-1 每周例行报告
20200924-1 每周例行报告
20201207-总结
20201126-1 每周例行报告
20201120-1 每周例行报告
20201112-1 每周例行报告
20201105-1 每周例行报告
20201029-1 每周例行报告
热门文章
20201022-1 每周例行报告
20201015-3 每周例行报告
20201008-1 每周例行报告
20200924-3 单元测试,结对
eclipse上jsp+servlet项目配置
刷题-力扣-412. Fizz Buzz
刷题-力扣-1013. 将数组分成和相等的三个部分
刷题-力扣-187. 重复的DNA序列
刷题-力扣-1005. K 次取反后最大化的数组和
刷题-力扣-434. 字符串中的单词数
Copyright © 2011-2022 走看看