2017-06-02 49 views
1

如何獲取文件的類型以及它是否爲圖像,獲取其尺寸?

我想從磁盤讀取文件,確定這些文件是否確實是圖像,並獲取它們的尺寸以確定它們是否符合我的程序標準。在球拍中獲取圖像類型和元數據

我注意到racket/draw包有bitmap%類型的可以載入圖像,但是這似乎超出了我的任務範圍,因爲我認爲這些文件加載​​到繪製數據類型將超過我的內存使用量的目標,並導致混淆的代碼。另外,如果我使用這個,我不得不使用bitmap%的錯誤來篩選出不是圖像的文件。我也看到一個包來操縱PNG圖像,但是,我也想獲得有關JPEG,GIF和可能TIFF的信息。

所以真的我的問題是兩重摺疊 - 有沒有類似於Racket的libmagic,並且有沒有像Rackma的imagemagick?

回答

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

+0

我完全錯過了EXIF包。所以我可以將它與包讀取png數據一起使用。我仍然需要一種獲取gif元數據的方法......也許這是我應該爲其編寫一個包的東西。 – Winny