zoukankan      html  css  js  c++  java
  • GDI+中发生一般性错误的解决办法

    System.Drawing.Image bmp = System.Drawing.Image.FromFile(path);

    Bitmap imgSrc = new Bitmap(bmp.Width, bmp.Height); // 新建一个图像复制原图,然后进行各种操作。把原图关闭再保存覆盖原图。
    Graphics gs = Graphics.FromImage(imgSrc);
    gs.DrawImage(bmp, 0, 0);
    bmp.Dispose();//避免 GDI+ 中发生一般性错误

    imgSrc.Save(path, System.Drawing.Imaging.ImageFormat.Jpeg);  //这个时候如是用 bmp对象保存就会引发 GDI+ 中发生一般性错误;

    因为对象正在操作之中已经锁定,所以不能保存。新建一个内存图像,复制原图 进行操作后覆盖原图才是正解。

    补充:

    网上说有三个原因,1个是没有写入权限要赋予 NETWORK SERVICE 帐户以写入权限,2是图像被锁定,3是文件不存在。

    本人在本地测试一切正常,发布到IIS 上就是报错。研究好了好久,终于发现,不是这程序的问题,是另外一个服务:

    在使用了 Bitmap 对象操作后没有关闭,释放资源导致错误。在另外一个服务使用图像时 加上using 问题解决。

    困扰了我一天。百思不得解,本地正常,就想着可能是权限问题,脑子转不过来。记录下来。

  • 相关阅读:
    redis 学习导航
    springcloud用法
    springcloud-概念
    倒排索引思想
    Java多线程编程实战读书笔记(一)
    java多线程中的三种特性
    汇编语言笔记
    同步/异步和阻塞/非阻塞
    乐观锁和悲观锁
    双亲委派模型
  • 原文地址:https://www.cnblogs.com/90nice/p/3473322.html
Copyright © 2011-2022 走看看