将位图保存到内存流时,我可以将位图转换为jpeg吗?

问题描述 投票:1回答:1

我正在尝试将位图文件作为jpeg保存到Azure中而不在本地保存它,因此我首先将位图保存为MemoryStream中的jpeg。

但是,当我执行以下代码时,文件上传但它没有正确转换位图。如果我查看该文件,查看器将显示“无效图像”。

我在某处读到位图无法转换为内存中的jpegs。这可能是这里发生的事情吗?

        // Retrieve reference to a blob
        var blobContainer = GetBlobContainer(Properties.Settings.Default.BlobContainerName);
        var blob = blobContainer.GetBlockBlobReference(blobFilePath);

        // Save bitmap to jpeg in MemoryStream, then upload to Azure blob
        //var writer = new StreamWriter(blob.OpenWrite());
        MemoryStream memStr = new MemoryStream();
        bitmap.Save(memStr, System.Drawing.Imaging.ImageFormat.Jpeg);
        blob.UploadFromStream(memStr);
c# image azure memorystream
1个回答
2
投票

在写入MemoryStream之后,您需要在尝试读取之前设置memStr.Position = 0来“回放”它(在您的情况下,将其上传到Azure)

“请善待,请倒带。”

© www.soinside.com 2019 - 2024. All rights reserved.