どこで、何が、なぜこの問題が発生したのかわからないこのコードで誰かが私を助けてくれることを願っています!!
ディレクトリから画像を取得して、それぞれに単純な透かしを作成する責任を負うこのコードがありますが、ストリームとして画像を読み取るためにコードが到着すると例外があります..
このコードを見てください:
DirectoryInfo[] dir = new DirectoryInfo[2];
dir[0] = new DirectoryInfo(Server.MapPath("Image/DB/Large/"));
dir[1] = new DirectoryInfo(Server.MapPath("Image/DB/Slide/"));
Image signature = Image.FromFile(Server.MapPath("Image/Design/signature.png"));
for (int i = 0; i < dir.Length; i++)
{
FileInfo[] fs = dir[i].GetFiles("*.jpg");
foreach (FileInfo s in fs)
{
FileStream strm = s.OpenRead();
String name = s.Name;
System.Drawing.Image img = System.Drawing.Image.FromStream(strm);
Graphics g = Graphics.FromImage(img);
g.SmoothingMode = SmoothingMode.HighQuality;
g.DrawImage(signature, new Point(0, 0));
g.Dispose();
strm.Close();
if (i == 0)
{
String v = Server.MapPath("Image/DB/Large/" + name);
img.Save(v);
}
else if (i == 1)
{
String v = Server.MapPath("Image/DB/Slide/" + name);
img.Save(v);
}
}
}
例外の詳細:
[ArgumentException: .] System.Drawing.Image.FromStream(Stream stream, Boolean
useEmbeddedColorManagement, Boolean validateImageData) +1065883
System.Drawing.Image.FromStream(Stream stream) +8 Developer.Page_Load(Object sender,
EventArgs e) in f:\.NET Programming\FaieqSahwish_V.2.0\Developer.aspx.cs:29
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t,
EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,
EventArgs e) +35 System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50 System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627