• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

gisoracle

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

asp.net上传图片并同时生成缩略图

asp.net上传图片并同时生成缩略图

<%@ 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 xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>上传图片并生成缩略图</title>
</head>
<body>
    <form id="Form1" 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>

posted on 2010-02-26 14:45  gisai  阅读(411)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3