【问题标题】:Can I convert a bitmap to a jpeg when saving the bitmap to a memory stream?将位图保存到内存流时,我可以将位图转换为 jpeg 吗?
【发布时间】:2018-09-06 20:33:37
【问题描述】:

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

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

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

        // 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】:

写入 MemoryStream 后,您需要通过设置 memStr.Position = 0 来“倒带”它,然后再尝试读取它(在您的情况下,将其上传到 Azure)

“请善待,请倒带。”

【讨论】:

  • 对于通常不使用内存流但确实有效的人来说,这不是一个明显的解决方案!
  • 另外...+1 表示怀旧语录。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-08
  • 2012-07-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多