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

C# 将png文件上载到Azure Blob存储将失去透明度,c#,azure,azure-storage-blobs,C#,Azure,Azure Storage Blobs,我们很难弄清楚如何将png文件上传到Azure Blob存储而不丢失图像透明度 我们正在使用Azure的存储SDK,代码如下: var storageAccount = CloudStorageAccount.Parse(*blob_connection_string*); //create client to work with blobs CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); //alre

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

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

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

对于遇到此问题的用户,我们找到了一个解决方案:

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

我们已经改变了上传程序,直接从输入中获取发布的文件二进制文件,并像一个魔咒一样工作

再次感谢推动我们实现此解决方案的想法


拥抱

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

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

我们已经改变了上传程序,直接从输入中获取发布的文件二进制文件,并像一个魔咒一样工作

再次感谢推动我们实现此解决方案的想法


Hugs

Azure Blob存储是一个简单的对象存储,因此图像文件不应更改。您能否共享原始文件和blob存储中文件的链接?请先验证,Stream:postedFile.InputStream通过写入本地文件是有效的。这是上载的文件:原始文件是google图像上任何具有透明度的png格式的文件。Azure Blob存储是一个简单的对象存储,因此您的图像文件不应更改。能否请您共享原始文件和blob存储中文件的链接?能否请您首先验证Stream:postedFile.InputStream通过写入本地文件是否有效。这是上载的文件:原始文件是google images上任何png格式且透明的文件。