将png文件上传到Azure Blob Storage会失去透明度

本文关键字:Storage Blob 失去 透明度 Azure png 文件 | 更新日期: 2023-09-27 18:01:48

我们很难弄清楚如何上传png文件到Azure Blob Storage而不丢失图像透明度。

我们正在使用Azure的存储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";

将png文件上传到Azure Blob Storage会失去透明度

那么,对于那些遇到这个问题的人,我们已经找到了一个解决方案:

问题是使用microsoft.net Image对象。根据MSDN,该对象仅适用于PNG 32位:

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

我们已经更改了上传例程,以直接从输入中获取发布的文件二进制,并且工作得很好!

再次感谢你的想法,是你让我们找到了这个解决方案!

拥抱