gpt4 book ai didi

c# - 如何使用 C# 在 Windows Phone 8.1 中将图像转换为字节数组

转载 作者:太空狗 更新时间:2023-10-30 01:04:20 25 4
gpt4 key购买 nike

我正在使用这段代码

MemoryStream ms = new MemoryStream();
WriteableBitmap wb = new WriteableBitmap(myimage);
wb.SaveJpeg(ms, myimage.PixelWidth, myimage.PixelHeight, 0, 100);
byte [] imageBytes = ms.ToArray();

来自 Convert image to byte array on Windows Phone 7 No System.Drawing Dll any other way?但 WriteableBitmap 在 Windows phone 8.1 环境下不包含 SaveJpeg 方法。

最佳答案

Windows Phone 8.1 Silverlight 应用程序 上,您的代码工作正常,我假设 myImage 是一个 BitmapImage。唯一必须做的就是等待 BitmapImage 完全加载:

using System.IO;
using System.Windows.Media.Imaging;
...
myImage = new BitmapImage(new Uri("http://i.stack.imgur.com/830Ke.jpg?s=128&g=1", UriKind.Absolute));
myImage.CreateOptions = BitmapCreateOptions.None;
myImage.ImageOpened += myImage_ImageOpened;
...
void myImage_ImageOpened(object sender, RoutedEventArgs e)
{
MemoryStream ms = new MemoryStream();
WriteableBitmap wb = new WriteableBitmap(myImage);
wb.SaveJpeg(ms, myImage.PixelWidth, myImage.PixelHeight, 0, 100);
byte[] imageBytes = ms.ToArray();
}

我刚刚测试了该代码,它在 WP8.1 上完美运行。

但正如您在另一篇文章中评论的那样,您无法引用 Microsoft.Phone,您可能正在做一个 Windows Phone 8.1 商店应用程序,在这种情况下,您可以使用以下代码:

using Windows.UI.Xaml.Media.Imaging;
using Windows.Storage.Streams;
using System.Runtime.InteropServices.WindowsRuntime;
...
BitmapImage bitmapImage = new BitmapImage(new Uri("http://i.stack.imgur.com/830Ke.jpg?s=128&g=1"));
RandomAccessStreamReference rasr = RandomAccessStreamReference.CreateFromUri(bitmapImage.UriSource);
var streamWithContent = await rasr.OpenReadAsync();
byte[] buffer = new byte[streamWithContent.Size];
await streamWithContent.ReadAsync(buffer.AsBuffer(), (uint)streamWithContent.Size, InputStreamOptions.None);

关于c# - 如何使用 C# 在 Windows Phone 8.1 中将图像转换为字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23800771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com