C#技能01 | 损坏图片检查

Posted 运筹优化与地理信息

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#技能01 | 损坏图片检查相关的知识,希望对你有一定的参考价值。

在图像处理中面对大量的图像,里边可能存在个别损坏的图像,本博文主要使用C#进行损坏图像识别。

1 获取指定目录下的所有文件名称

 /// <summary> /// 迭代获取选择指定文件夹下的所有文件名 /// </summary> /// <param name="srcDir">文件目录</param> /// <param name="selFileNames">文件名存储列表</param> public void getAllFileNames(string srcDir, List<string> selFileNames) { string[] dirs = Directory.GetDirectories(srcDir); selFileNames.AddRange(Directory.GetFiles(srcDir));  foreach(string dir in dirs) { getAllFileNames(dir, selFileNames); } }

2 检查图片是否损坏

 /// <summary> /// 对列表中图片文件进行检查 /// </summary> /// <param name="liFileFullName">图片文件列表</param> /// <param name="sw">输出流</param> public void CheckFile(List<string> liFileFullName, StreamWriter sw) { foreach (string fileFullName in liFileFullName) { if (fileFullName.Contains("jpg") || fileFullName.Contains("bmp") || fileFullName.Contains("gif")) { try { Bitmap bmp = new Bitmap(fileFullName); if (bmp == null) { sw.WriteLine(fileFullName); } } catch (Exception ex) { //图片损坏输出到日志 sw.WriteLine(fileFullName); } } } }

3 批量调用

 /// <summary> /// 检查 /// </summary> /// <param name="srcDir"></param> /// <param name="ouTxt"></param> public void check(string srcDir, string ouTxt) { StreamWriter sw = new StreamWriter(ouTxt); List<string> allFileNames = new List<string>(); getAllFileNames(srcDir, allFileNames); CheckFile(allFileNames, sw); sw.Close(); sw.Dispose(); }


以上是关于C#技能01 | 损坏图片检查的主要内容,如果未能解决你的问题,请参考以下文章

20+ css高频实用片段,提高幸福感的小技能你可以拥有噢

对“xxx”类型的已垃圾回收委托进行了回调。这可能会导致应用程序崩溃损坏和数据丢失。向非托管代码传递委托时,托管应用程序必须让这些委托保持活动状态,直到确信不会再次调用它们。 错误解决一例。(代码片段

办公技能01:最简单的调整图片分辨率方法——用windows自带的画图功能

损坏的顶点和片段着色器

Vuejs - 检查图片网址是有效还是损坏

使用 servlet 上传后图像文件已损坏 [重复]