zoukankan      html  css  js  c++  java
  • 关于asp.net上传图片自动生成缩略图

     /// <summary>
        /// 生成缩略图
        /// </summary>
        /// <param name="fileName">原文件</param>
        /// <param name="width">宽度</param>
        /// <param name="height">高度</param>
        private void CreateThumbnailImage(string fileName, string smallPath, int width, int height)
        {
            //版权信息
            string strAdd = "www.wander.com";
            //生成的缩略图的名字=年月日+文件大小(防止文件名相同)
            string newFileName = smallPath;

            System.Drawing.Image image, newImage;
            //载入原图像
            image = System.Drawing.Image.FromFile(Server.MapPath(fileName));
            //回调
            System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.Image.GetThumbnailImageAbort(callBack);
            //生成缩略图
            newImage = image.GetThumbnailImage(width, height, callb, new System.IntPtr());

            AddInfo(newImage, strAdd, newFileName, 16);

            image.Dispose();
            newImage.Dispose();

            Image1.ImageUrl = newFileName;
        }

        /// <summary>
        /// 添加版权信息
        /// </summary>
        /// <param name="image"></param>
        /// <param name="strAdd"></param>
        /// <param name="newFileName"></param>
        /// <param name="fontSize"></param>
        private void AddInfo(System.Drawing.Image image, string strAdd, string newFileName, int fontSize)
        {
            Response.Clear();
            Bitmap b = new Bitmap(image);
            Graphics g = Graphics.FromImage(b);
            g.DrawString(strAdd, new Font("宋体", fontSize), new SolidBrush(Color.Red), image.Width / 2 - 80, image.Height - 30);
            b.Save(Server.MapPath(newFileName), System.Drawing.Imaging.ImageFormat.Gif);
        }

        private bool callBack()
        {
            return true;
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            if (loadFile.PostedFile != null)
            {
                //判断是不是图像文件
                if (loadFile.PostedFile.ContentType.ToLower().IndexOf("image") < 0)
                {
                    //文件类型错误
                }
                else
                {
                    string ext = loadFile.PostedFile.FileName.Substring(loadFile.PostedFile.FileName.LastIndexOf("."));
                    //生成新的原文件名 年月日+文件大小+扩展名
                    string path = "Uploads\\" + System.DateTime.Now.Date.ToShortDateString() + loadFile.PostedFile.ContentLength.ToString() + ext;
                    //加上版权信息的文件
                    string newPath = "Uploads\\" + System.DateTime.Now.Date.ToShortDateString() + loadFile.PostedFile.ContentLength.ToString() + "new" + ext;
                    //缩略图文件名
                    string newFileName = "uploads\\" + System.DateTime.Now.Date.ToShortDateString() + loadFile.PostedFile.ContentLength.ToString() + "small.gif";
                    //上传原图
                    loadFile.PostedFile.SaveAs(Server.MapPath(path));
                    //生成缩略图
                    CreateThumbnailImage(path, newFileName, 200, 300);

                    //给原图加上版权信息
                    System.Drawing.Image image = System.Drawing.Image.FromFile(Server.MapPath(path));
                    AddInfo(image, "www.wander.com", newPath, 20);
                    image.Dispose();
                }
            }

        }

  • 相关阅读:
    可闭环、可沉淀、可持续的企业级数据赋能体系
    案例解读|迁云的灵魂3问,降多少本,增多少效,真平滑否?
    Serverless 实战——使用 Rendertron 搭建 Headless Chrome 渲染解决方案
    从零开始入门 K8s | etcd 性能优化实践
    State Processor API:如何读取,写入和修改 Flink 应用程序的状态
    阿里云叔同:以容器为代表的云原生技术,已成为释放云价值的最短路径
    Flink SQL 如何实现数据流的 Join?
    仅1年GitHub Star数翻倍,Flink 做了什么?
    codeforces div2_603 F. Economic Difficulties(树dfs预处理+dp)
    codeforces div2_604 E. Beautiful Mirrors(期望+费马小定理)
  • 原文地址:https://www.cnblogs.com/gengaixue/p/1311963.html
Copyright © 2011-2022 走看看