将png文件上载到Azure Blob存储正在失去透明度

时间:2016-08-10 13:03:22

标签: c# azure azure-storage-blobs

我们很难弄清楚如何在不丢失图像透明度的情况下将png文件上传到Azure Blob存储。

我们正在使用Azure的Storage SDK,其代码如下:

var storageAccount = CloudStorageAccount.Parse(*blob_connection_string*);

//create client to work with blobs
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

//already created container via azure management portal, set container reference
CloudBlobContainer container = blobClient.GetContainerReference("brand");

foreach (string file in httpRequest.Files)
{
    var postedFile = httpRequest.Files[file];
    CloudBlockBlob blockBlob = container.GetBlockBlobReference(postedFile.FileName);
    blockBlob.UploadFromStream(postedFile.InputStream);

}

我们尝试在上传之前强制使用ContentType属性,如下所示:

blockBlob.Properties.ContentType = "image/png";

但无论是否有此属性都不起作用。

1 个答案:

答案 0 :(得分:0)

那么,对于遇到此问题的人,我们找到了解决方案:

问题在于使用Microsoft .Net Image对象。根据MSDN,此对象仅适用于PNG 32位:

  

https://msdn.microsoft.com/pt-br/library/1kcb3wy4%28v=vs.110%29.aspx?f=255

我们已经更改了上传例程,直接从输入中获取发布的文件二进制文件,并像魅力一样工作!

再次感谢推动我们使用此解决方案的想法!

拥抱