我用phostoshop软件打开一张图片是否受损,请问我怎么在C#程序中判断这张图片是受损的,
我用phostoshop软件打开一张图片是否受损,请问我怎么在C#程序中判断这张图片是受损的
一般受损的图片是打不开的,你用代码写个读图片的功能,try-catch捕捉是否有异常,有就是受损的
要是图片受损的话,根本打不开,程序中也就不可能访问到该图片
public bool CheckImage()
{
DirectoryInfo TheFolder = new DirectoryInfo(@"c:\");//修改你的主目录地址
GetFolder(TheFolder);
CheckFile(TheFolder);
return true;
}
public void GetFolder(DirectoryInfo TheFolder)
{
foreach (DirectoryInfo NextFolder in TheFolder.GetDirectories())
{
GetFolder(NextFolder);
CheckFile(NextFolder);
}
}
public void CheckFile(DirectoryInfo TheFolder)
{
foreach (FileInfo NextFile in TheFolder.GetFiles())
{
if (NextFile.Extension.Contains("jpg") ||
NextFile.Extension.Contains("png") ||
NextFile.Extension.Contains("gif"))
{
try
{
Bitmap bmp = new Bitmap(NextFile.FullName);
if (bmp == null)
{
//图片损坏输出到日志
Common.DIYUtility.LogHelper.Error("图片损坏", NextFile.FullName);
}
}
catch (Exception ex)
{
//图片损坏输出到日志
Common.DIYUtility.LogHelper.Error("图片损坏", NextFile.FullName+"|"+ex.Message);
}
}
}
}