簡體   English   中英

從JPG讀取EXIF數據

[英]Reading EXIF data from JPG

我需要分析數千個jpeg文件(通過檢索它的EXIF數據)。 它超過50 GB的數據。我無法讀取整個文件,因為它需要花費太多時間。

C#中是否有任何方法只讀取這些文件中的EXIF數據而無需加載和解壓縮整個jpeg文件?

編輯:為什么我需要快速方法?
我試過這個問題的解決方案: 如何使用C#從文件中獲取EXIF數據
對於1000張總大小約為1GB的圖像,需要3分鍾進行分析。 因此,對於較大的(50G)照片庫,可能需要2個小時。 當您需要幾乎即時的信息時,例如:“客戶使用的縮放比例是什么”,這太慢了。

您可以在ExifLib中找到一些代碼示例- 用於.NET 2.0+的快速Exif數據提取器 (以及一個完整的項目),它顯示了如何讀取僅獲取EXIF信息所需的最小數據。

我最近將我的Java 元數據提取器庫移植到.NET。 它自2002年以來一直活躍,並通過廣泛使用進行了大量測試。 在我的測試中,它通過2GB的圖像進行攪拌,在我的機器上大約4秒內提取所有元數據。 您可以通過告訴它只讀取特定類型的元數據(例如Exif)來進一步優化。 它支持許多圖像/視頻格式和許多元數據類型。

可在GitHubNuGet上使用

GdPicture.NET Imaging SDK啟動版本10提供了一種新的圖像解析機制,允許直接訪問圖像元數據(EXIF,GPS,XMP,IPTC ...)而無需解碼像素。 它支持90多種圖像格式,包括JPEG,TIFF,RAW和WebP。

這里一個鏈接,演示了如何使用C#和VB.NET中提取元數據GdPicture.NET知識庫(許多其他語言也支持): 教程

如果有人需要進一步的信息,我將很樂意提供幫助。

免責聲明:我是GdPicture.NET的產品架構師。

你不需要解壓縮任何東西,Exif信息保存在圖像之前的標題中,所以你需要做的就是打開文件,讀取exif標題並解碼你需要的任何東西。 這是你手動讀取exif數據(這並不難)。

如果您需要的只是尺寸,那就在前面

編輯:注意exif數據實際上並不是必須在前面,但它幾乎總是如此,因此可以安全地假設一般來說它會比它不是很快。

另外,您是否檢查過使用標准API“太慢”? 我不會認為50G會花費那么長時間(或者如果以不同的方式做它必然會更快)。

暫無
暫無

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

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