1
2
最后我把对你问题的评论和我之前的回答结合起来解决了这个问题。 here . 对代码的微小更改使其可以处理非图像的图像。 我没有将其更改为递归到子目录。很容易做到。
在考虑了一会儿之后,把检查文件是否是图像和拉出宽度和高度结合起来会觉得很脏。或者,您可以定义一个函数,该函数单独进行过滤,并为您提供一系列图像。
] |
2
2
显然,最简单的事情就是查看文件扩展名。当然,它不一定可靠,但在某些情况下可能就足够了。 除了读取整个图像,您还可以读取文件的前几个字节,以通过其“幻数”来识别它。例如,jpeg文件总是以两个字节0xffd8开头,以0xffd9结尾;pdfs总是以字符串“%pdf”开头。 这样可以节省在内存中创建映像的开销,也可以加快I/O的速度(因为您只需要文件的几个字节)。 如果你不想自己研究所有这些魔法数字,你可以尝试一个图书馆,比如 jMimeMagic . 我从未使用过它,所以我不能保证它的质量或完整性,但它是LGPL。我相信你也能找到其他的选择。 |
3
2
你可以使用 Tika library 它能够检测多种类型的文件,并从其中许多文件中提取元数据。我有很简单的 Clojure wrapper 为它 |
Freid001 · 具有最小和最大限制的架构? 6 年前 |
phlie · Hoplon With Castra加载后端时出错 6 年前 |
David Furnam · Clojure从数组中获取坐标 6 年前 |
Jeroen · 如何将惰性序列转换为映射? 6 年前 |