【发布时间】:2013-05-05 11:21:21
【问题描述】:
我看到了这个问题的解决方案: Saving as jpeg from memorystream in c#
但它在 winRT 中不起作用。 有没有使用 FileSavePicker 将 MemoryStream 保存为 JPEG 的简单方法?
我试过了:
private async void Save_Image(MemoryStream image)
{
// Launch file picker
FileSavePicker picker = new FileSavePicker();
picker.FileTypeChoices.Add("JPeg", new List<string>() { ".jpg", ".jpeg" });
StorageFile file = await picker.PickSaveFileAsync();
if (file == null)
return;
Stream x = await file.OpenStreamForWriteAsync();
image.WriteTo(x)
}
但它正在保存空白文件。可能是我做错了什么。
尝试了另一种方法,但又是空白图像:
private async void Save_Image(MemoryStream image)
{
// Launch file picker
FileSavePicker picker = new FileSavePicker();
picker.FileTypeChoices.Add("JPeg", new List<string>() { ".jpg", ".jpeg" });
StorageFile file = await picker.PickSaveFileAsync();
if (file == null)
return;
int end = (int)image.Length;
byte[] buffer = new byte[end];
await image.ReadAsync(buffer, 0, end);
await FileIO.WriteBytesAsync(file, buffer);
}
【问题讨论】:
-
你从哪里得到
image? -
抱歉,错过了几行。我们开始吧:
private async void Save_Image(MemoryStream image) { -
为什么要使用 MemoryStream 存储图像字节?如果您的意图是创建图像或修改现有图像,则使用 WriteableBitmap 类可能会更好。
-
这是另一个可能有帮助的 SO 问题。 stackoverflow.com/questions/10197170/…
标签: c# windows-runtime memorystream