簡體   English   中英

如何在不加載內存文件的情況下以像素為單位獲取圖像寬度和高度

[英]How to get image width and height in pixels without loading file in memory

我的問題與非常相似,但我在磁盤上有數千張圖像,我想快速讀取它們的寬度和高度(以像素為單位),而無需將每個文件加載到內存中。

在我的 Linux 機器上,我可以為每個文件做這樣的事情:

path_to_file <- 'img/13600061.jpg'
system(sprintf("file %s", path_to_file), intern = TRUE)

但是file的輸出對於 jpg、jpeg 和 png file可能有所不同,然后我需要根據文件以不同的方式捕獲像素信息。 我想知道是否已經有一個通用的快速解決方案。

我認為exiftool適合這里的要求。 它可以在所有平台上運行,非常可控,而且至關重要的是,它可以自行遞歸,因此不會產生每個文件啟動一次的開銷。

作為粗略的第一次嘗試,如果處理 PNG 和 JPEG 並從當前目錄開始向下遞歸,您會想要這樣的東西,即.

exiftool -csv -ImageHeight -ImageWidth -r -ext jpg -ext jpeg -ext png .

樣本輸出

black.png,80,80
blue.png,80,80
c.jpg,1,1
deskew/skew40.png,800,800
deskew/gradient.png,800,800

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM