簡體   English   中英

如何從base64數據URL獲取exif數據?

[英]How to get exif data from base64 data url?

我目前正在下載以base 64字符串存儲在數據庫中的圖像。 問題是我還需要獲取圖像EXIF數據來確定圖像方向。 我想知道他們是否是獲取EXIF數據的一種方法。

以下是我的C#代碼。

 busyMessage.Text = "Loading Tools";
 InvToolSync toolSync = new InvToolSync();
 toolData = await toolSync.GetTools(viewModel.CompanyData.company_id);
 foreach (Tool tool in toolData)
 {
    if (tool.archived == "True")
       continue;

    var lt = new ListTemplate(tool.id, tool.name, ImageSource.FromFile("default_image.png"));

    if (!string.IsNullOrEmpty(tool.photos))
        if (tool.photos.Length % 4 == 0)
            lt.SourceImage = ImageSource.FromStream(() => new MemoryStream(Convert.FromBase64String(tool.photos)));

    listDisplay.Add(lt);
 }

上面的代碼加載了填充列表項所需的數據,如您所見,我能夠使用此代碼tool.photos獲取圖像的數據URL。 但是我似乎無法弄清楚如何獲取EXIF數據。 是他們的插件還是一些c#代碼,它們可以從base64字符串甚至字節數組中獲取此信息?

謝謝。

您可以使用Convert.FromBase64String來獲取圖像數據的byte[]

這樣,您可以使用MetadataExtractor來訪問圖像中的所有元數據,而不僅僅是Exif:

var directories = ImageMetadataReader.ReadMetadata(
    new MemoryStream(bytes));

foreach (var directory in directories)
foreach (var tag in directory.Tags)
    Console.WriteLine($"{directory.Name} - {tag.Name} = {tag.Description}");

該庫可通過NuGet此處獲得: https : //www.nuget.org/packages/MetadataExtractor/

(自2002年以來,我一直在維護這個項目。)

暫無
暫無

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

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