我在查看icafe庫https://github.com/dragon66/icafe的示例,以瞭解如何操作圖像元數據,但找不到任何示例。如何在icafe中操作圖像元數據
我正在嘗試向exif元數據添加一個字段,如Description
,併爲該字段添加一些示例文本。
此外,從我發現我似乎無法分辨icafe是否將工作在圖像輸入流或它需要一個絕對路徑存儲在磁盤上的文件?
我在查看icafe庫https://github.com/dragon66/icafe的示例,以瞭解如何操作圖像元數據,但找不到任何示例。如何在icafe中操作圖像元數據
我正在嘗試向exif元數據添加一個字段,如Description
,併爲該字段添加一些示例文本。
此外,從我發現我似乎無法分辨icafe是否將工作在圖像輸入流或它需要一個絕對路徑存儲在磁盤上的文件?
儘管wiki頁面上沒有例子,但實際上有一個關於如何操作源代碼包com.icafe4j.test中可以找到的元數據的詳細例子。該類的名稱是TestMetadata,它向您顯示瞭如何插入EXIF,IPTC,XMP,註釋,縮略圖等不同元數據。
ICAFE與InputStream和OutputStream一起使用。因此,只要它是一個InputStream,它是否來自本地文件或沒有關係。如果你只是想添加一些評論,你可以簡單地做這樣的事情:
FileInputStream fin = new FileInputStream("input.png");
FileOutputStream fout = new FileOutputStream("comment-inserted.png");
Metadata.insertComments(fin, fout, Arrays.asList("Comment1", "Comment2"));
上面的代碼適用於常見的圖像格式,如JPEG,TIFF,PNG,GIF等同樣只要格式支持某些元。
如果你想與Exif工作,你可以使用:
Metadata.insertExif(InputStream fin, OutputStream fout, Exif exif, boolean upate);
其中也有一個參數「更新」來控制您是否希望如果存在的話,以保持原有的Exif數據中。有關如何創建Exif實例的詳細信息,請參見相同的示例。
我剛剛意識到我錯過了與icafe的wiki頁面中的元數據操作相關的部分,因爲另一個用戶發送了一封電子郵件,詢問這個問題的類似問題。 – dragon66