如何从base64数据中获取exif数据url?
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);
}
上面的代码加载了填充列表项所需的数据,如您所见,我可以使用此代码 url 获取图像数据 tool.photos
。但我似乎无法弄清楚如何获取 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 年开始维护这个项目。)
我目前正在下载已作为 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);
}
上面的代码加载了填充列表项所需的数据,如您所见,我可以使用此代码 url 获取图像数据 tool.photos
。但我似乎无法弄清楚如何获取 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 年开始维护这个项目。)