当存储在天蓝色斑点存储中时,如何获取图像尺寸?

Ras*_*kov 1 c# azure azure-storage-blobs

我在Blob中有图像,我想读取图像尺寸(宽度和高度)

这是我从blob中读取的功能:

 private static CloudBlockBlob ReadBlockBlob(string input, IConfigurationRoot config)
    {
        CloudStorageAccount storageAccount = new CloudStorageAccount(
            new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(config["storageAccountName"], config["storageKeyValue"]), true);
        CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
        CloudBlobContainer container = blobClient.GetContainerReference(config["blobContainer"]);
        return container.GetBlockBlobReference(input);
    }
Run Code Online (Sandbox Code Playgroud)

我在CloudBlobContainer和CloudBlockBlob中都看不到任何有用的元数据。

知道如何从Blob获取图像尺寸吗?

谢谢

Pet*_*Pan 6

您无法通过blob的属性和元数据直接获取Azure存储上存在的blob的图像尺寸。唯一的方法是下载图像Blob并将其转换为System.Drawing.Imagevia方法System.Drawing.Image.FromFileSystem.Drawing.Image.FromStream获取Image.WidthImage.Height

否则,您需要在上传图像时首先添加Blob的元数据来存储图像尺寸数据。然后,您无需下载即可从Blob元数据获取图像的尺寸。我建议以这种方式避免下载那些大图像。