zoukankan      html  css  js  c++  java
  • .NET 错误码信息1 GDI+ 中发生一般性错误

      今天公司要求做一个在网站上上传图片自动加水印的东东~~~~
    但是做好后,在本地测试一切正常,在服务器上测试,就报"GDI+ 中发生一般性错误",偶尔"file not find".
    在网上看了下,说是服务器文件夹权限的问题,  确认aspnet或者network  service有覆盖文件等相应权限,或确认没有同名jpg文件存在.
            经过多次修改,总是跳出"GDI+ 中发生一般性错误".想了想,会不会是服务器不能对本地的图片文件进行GDI操作呢,
    试试吧,果然,我先把本地图片传到服务器上后,再对它加水印,一切正常.
            我就不理解了,为什么就不能直接操作本地文件呢(虽然问题已解决)?大家有谁知道请帮我解释一下,谢谢....
        
        
    错误代码如下:
     1 public void createImage(string newFileName)
     2     {
     3         //上传的图片文件
     4         string FilePath1 = this.FileUpload1.PostedFile.FileName;
     5         //服务器上的水印文件
     6         string FilePath2 = Server.MapPath("../uploadFile/member/01.png");
     7         //将图片转为Image
     8         System.Drawing.Image image1 = System.Drawing.Image.FromFile(FilePath1);
     9         System.Drawing.Image image2 = System.Drawing.Image.FromFile(FilePath2);
    10         //对上传的图片绘图
    11         Graphics g = Graphics.FromImage(image1);
    12         g.DrawImage(image2, image1.Width / 8, image1.Height / 8, (image1.Width - image1.Width / 4), (image1.Height - image1.Height / 4));
    13         //将加上水印的Image保存为jpg文件在服务器上
    14         image1.Save(Server.MapPath("../uploadFile/member/" + newFileName), System.Drawing.Imaging.ImageFormat.Jpeg);
    15         //释放资源
    16         g.Dispose();
    17         image1.Dispose();
    18     }

    修改后的正常代码:
     1 public void createImage(string newFileName)
     2    {
     3        this.FileUpload1.SaveAs(Server.MapPath("../uploadFile/temp/"+ newFileName);   //上传到服务器
     4        string FilePath1 = Server.MapPath("../uploadFile/temp/"+ newFileName;         //再取服务器上的文件
     5        string FilePath2 = Server.MapPath("../uploadFile/member/01.png");
     6
     7        System.Drawing.Image image1 = System.Drawing.Image.FromFile(FilePath1);
     8        System.Drawing.Image image2 = System.Drawing.Image.FromFile(FilePath2);
     9
    10        Graphics g = Graphics.FromImage(image1);
    11        g.DrawImage(image2, image1.Width / 8, image1.Height / 8, (image1.Width - image1.Width / 4), (image1.Height - image1.Height / 4));
    12        image1.Save(Server.MapPath("../uploadFile/member/" + newFileName), System.Drawing.Imaging.ImageFormat.Jpeg);
    13        g.Dispose();
    14        image1.Dispose();
    15    }
  • 相关阅读:
    url 编码 js url传参中文乱码解决方案
    form提交时,如果target=_blank,则会打开一个新页面,但是大小和位置无法控制,请问如何进行控制
    java日期转字符串 字符串转日期 日期转日历 日历转日期
    策略模式【设计模式学习02】
    设计模式六大原则【设计模式学习开篇】
    应用程序栏【WP7学习札记之九】
    主题样式与数据绑定【WP7学习札记之八】
    启动器与选择器常用Task【WP7学习札记之四】
    屏幕方向与常用控件【WP7学习札记之六】
    设备的开发【WP7学习札记之五】
  • 原文地址:https://www.cnblogs.com/liaojunbo/p/1155739.html
Copyright © 2011-2022 走看看