作者:活靶子       出处:AspxBoy.Com

<%@ Page Language="C#" ResponseEncoding="gb2312" %>
<%@ import Namespace="System" %>
<%@ import Namespace="System.IO" %>
<%@ import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<script runat="server">

void Page_Load(Object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
ImgPreview.Visible=false;
}
}
void GetThumbnailImage(int width,int height,string strInfo,int left,int right)
{
string file="Uploads/"+uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('//')+1);
string newfile="Uploads/"+uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('//')+1)+".jpg";
string strAdd=strInfo;
System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Server.MapPath(file));
System.Drawing.Image thumbnailImage =
oldimage.GetThumbnailImage(width, height,new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
Response.Clear();
Bitmap output=new Bitmap(thumbnailImage);
Graphics g=Graphics.FromImage(output);
g.DrawString(strAdd,new Font("Courier New", 14),new SolidBrush(Color.Red),left,right);
output.Save(Server.MapPath(newfile),System.Drawing.Imaging.ImageFormat.Jpeg);
Response.ContentType = "image/gif";
ImgPreview.Visible=true;
ImgPreview.ImageUrl=newfile;
}
bool ThumbnailCallback()
{
return true;
}

void Button_Click(object sender, EventArgs e)
{
int width,height,left,right;
string strAddInfo=txtAddInfo.Text;
width=Int32.Parse(txtWidth.Text);
height=Int32.Parse(txtHeight.Text);
left=Int32.Parse(txtLeft.Text);
right=Int32.Parse(txtRight.Text);
if(!(uploadFile.PostedFile.ContentLength>0))
{
lblErrInfo.Text="没有选择文件";
}
else
{

string path = Server.MapPath("./Uploads/"+uploadFile.PostedFile.FileName.Substring(uploadFile.PostedFile.FileName.LastIndexOf('//')+1));
if(File.Exists(path))
{
lblErrInfo.Text="已经有同名文件";
}
else
{
uploadFile.PostedFile.SaveAs(path);
GetThumbnailImage(width,height,strAddInfo,left,right);
}
}
}
</script>
<html>
<head>
</head>
<body>
<form method="post" enctype="multipart/form-data" runat="server">
<p>
<input id="uploadFile" type="file" runat="server" />
<asp:Label id="lblErrInfo" runat="server" forecolor="Red"></asp:Label>
</p>
<p>
width:<asp:TextBox id="txtWidth" runat="server" Width="40px">100</asp:TextBox>
 height:<asp:TextBox id="txtHeight" runat="server" Width="40px">150</asp:TextBox>
 
</p>
<p>
添加信息:<asp:TextBox id="txtAddInfo" runat="server">AspxBoy.Com</asp:TextBox>
</p>
<p>
信息位置:left:<asp:TextBox id="txtLeft" runat="server" Width="40px">10</asp:TextBox>
 right:<asp:TextBox id="txtRight" runat="server" Width="40px">135</asp:TextBox>
</p>
<p>
 
<input id="button" type="button" value="上传生成缩略图" onServerClick="Button_Click" runat="server" />
</p>
<p><asp:Image id="ImgPreview" runat="server"></asp:Image>
</p>
<!-- Insert content here -->
</form>
</body>
</html>

用ASP.NET上传图片并生成带版权信息的缩略图相关推荐

  1. Asp.Net 上传图片并生成高清晰缩略图

    在asp.net中,上传图片功能或者是常用的,生成缩略图也是常用的.baidu或者google,c#的方法也是很多的,但是一用却发现缩略图不清晰啊,缩略图片太大之类的事情,下面是我在处理图片上的代码, ...

  2. 关于asp.net上传图片自动生成缩略图

    /// <summary>     /// 生成缩略图     /// </summary>     /// <param name="fileName&quo ...

  3. asp.net上传图片自动生成缩略图功能代码

    if (FileUpload1.FileName.ToString() == "") { Label3.Text = "请选择图片!"; } else { Bo ...

  4. Python生成带自定义信息和头像图片的二维码

    直接上代码,有关二维码各种版本尺寸大小与信息容量以及容错相关的内容请自行搜索查阅. from os import listdir from os.path import splitext import ...

  5. 给图片加上带版权的水印

    我们在网站上有些时候需要给图片加上带版权的水印,.net的Graphics类可以很轻松的实现这一点. 效果图:(图片最上端的那行字便是我们加上的版权水印了) 实现代码: /**//// <sum ...

  6. asp.net中上传图片并生成小图片,自动添加水印的代码 .

    asp.net中上传图片并生成小图片,自动添加水印的代码 分类: .Net(C#) 2010-03-22 15:28 242人阅读 评论(0) 收藏 举报 /// 上传图片生成缩略图及水印 (来自:h ...

  7. 在ASP.NET中上传图片并生成缩略图

    在ASP.NET中上传图片并生成缩略图,可以参照下列代码: private void btnUploadPicture_Click(object sender, System.EventArgs e) ...

  8. 在ASP.NET网站中实现带列表(其由xml文件控制生成)的视频播放

    在ASP.NET网站中实现带列表的视频播放 方法: 用c#将视频文件上传到磁盘上时同时生产对应的xml文件,播放页面使用js读取对应的xml文件生成播放列表. xml文件: 文件名:huojian.x ...

  9. asp.net 后台生成二维码及生成带logo的二维码

    asp.net 后台生成二维码及生成带logo的二维码,此处将生成二维码和带Logo的二维码写在一起的,需要自己区分一下. 直接上代码 using System; using System.Colle ...

最新文章

  1. 结构体的两种声明方式:堆上和栈上以及在双链表的应用
  2. powershell获取linux文件,powershell如何读取文件名并赋值到变量?
  3. resoult在python啥意思,python - __lt__而不是__cmp__
  4. 多语言应用开发中本地化信息对照表
  5. 典范杜希奇与机器人_典范英语7_16 杜希奇与机器人.ppt
  6. 丁可以组什么词_“一”可以组什么词?落语读书会学期总结
  7. 【SSM -MyBatis篇03】MyBatis Generator(MBG)配置属性详解(基于MyBatis3) - 逆向生成 - 配置MBG模板
  8. java excel图表_Java 创建Excel图表
  9. 战胜自己,征服北京四海记
  10. 项目管理的九大知识领域
  11. 提升团队战斗力的要点
  12. 纹理过滤中的双线,三线过滤
  13. 安卓系统管理软件_2020年了,这些高效率软件你必须得会!
  14. WordPress调用文章中第一张图片作为缩略图(特色图像)的方法
  15. 提醒大家提高安全意识: 虎口脱险记
  16. 【软件质量保证与测试】实验一、基于Selenium+Python的自动化测试
  17. intra_op_parallelism_threads参数设置
  18. 最新天气预报接口【2015-05-14改】
  19. 2023年“呕心沥血”之泰迪杯数据挖掘A题新冠疫情比赛经历分享
  20. activity间数据传递实例_人品计算器

热门文章

  1. android radiobutton 分组,Android 第十课——UI RadioButton
  2. flux java_FluxJava 新增 RxJava2 的支援功能
  3. linux系统 大分区,linux大硬盘怎么分区
  4. Python Qt GUI设计:QTimer计时器类、QThread多线程类和事件处理类(基础篇—8)
  5. keras 的 example 文件 imdb_fasttext.py 解析
  6. keras 的 example 文件 conv_lstm.py 解析
  7. uint8_t uint16_t uint32_t uint64_t 解析
  8. 【技巧】实现饿了么Element UI的table单击(点击)编辑单元格内容
  9. 使用python中的Matplotlib绘图示例
  10. Windows程序设计学习笔记(1):一个简单的windows程序