【问题标题】:Get Image Type and Metadata in Racket获取 Racket 中的图像类型和元数据
【发布时间】:2017-06-03 23:27:43
【问题描述】:

如何获取文件的类型,如果是图像,获取其尺寸?

我想从磁盘读取文件,确定这些文件是否确实是图像,并获取它们的尺寸以确定它们是否符合我的程序的标准。

我注意到racket/draw 包有一个bitmap% 类型,可以加载图像,但这似乎超出了我的任务范围,因为我认为将文件加载到可绘制数据类型将超过我的内存使用目标并导致混乱的代码。此外,如果我使用它,我将不得不使用bitmap% 的错误来筛选出不是图像的文件。

我还看到了一个处理 png 图像的包,但是,我还想获取有关 jpeg、gif 和可能的 tiff 的信息。

所以真的我的问题有两个方面 - 是否有类似 libmagic 用于 Racket 的东西,是否有类似 imagemagick 的东西用于 Racket?

【问题讨论】:

    标签: image racket


    【解决方案1】:

    要判断文件类型,可以

    • 看文件扩展名

    • 读取文件的第一个字节并与某些选定图像格式的幻数进行比较

    幻数信息:https://en.wikipedia.org/wiki/Magic_number_%28programming%29

    另一种方法是使用外部实用程序file。该实用程序可用于许多系统。此手册页适用于 Linux 版本:https://linux.die.net/man/1/file

    关于从 jpeg 文件中获取信息,请参阅此包:

    https://pkgs.racket-lang.org/package/binary-class-exif

    【讨论】:

    • 我完全错过了那个 exif 包。所以我可以将它与读取 png 数据的包结合使用。我仍然需要一种获取 gif 元数据的方法......也许这是我应该为其编写一个包的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    相关资源
    最近更新 更多