UWP编码可写比特映射到JPEG字节数组

UWP编码可写比特映射到JPEG字节数组,uwp,writeablebitmap,writeablebitmapex,Uwp,Writeablebitmap,Writeablebitmapex,我正在尝试将WriteableBitmap编码为JPEG字节数组。但实际上我找到了SaveJpeg方法的例子,现在还不存在。 所以我尝试了ToStreamAsJpeg方法,但是这个方法不起作用。一步一步地,我无法摆脱它。 谢谢好的,所以我用以下方法解决了我的问题: private async Task<byte[]> EncodeJpeg(WriteableBitmap bmp) { SoftwareBitmap soft = SoftwareBitmap.CreateCop

我正在尝试将WriteableBitmap编码为JPEG字节数组。但实际上我找到了SaveJpeg方法的例子,现在还不存在。 所以我尝试了ToStreamAsJpeg方法,但是这个方法不起作用。一步一步地,我无法摆脱它。
谢谢

好的,所以我用以下方法解决了我的问题:

private async Task<byte[]> EncodeJpeg(WriteableBitmap bmp)
{
    SoftwareBitmap soft = SoftwareBitmap.CreateCopyFromBuffer(bmp.PixelBuffer, BitmapPixelFormat.Bgra8, bmp.PixelWidth, bmp.PixelHeight);
    byte[] array = null;

    using (var ms = new InMemoryRandomAccessStream())
    {
        BitmapEncoder encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, ms);
        encoder.SetSoftwareBitmap(soft);

        try
        {
            await encoder.FlushAsync();
        }
        catch { }

        array = new byte[ms.Size];
        await ms.ReadAsync(array.AsBuffer(), (uint)ms.Size, InputStreamOptions.None);
    }

    return array;
}
private async Task EncodeJpeg(WriteableBitmap-bmp)
{
SoftwareBitmap soft=SoftwareBitmap.CreateCopyFromBuffer(bmp.PixelBuffer、BitmapPixelFormat.Bgra8、bmp.PixelWidth、bmp.PixelHeight);
字节[]数组=null;
使用(var ms=new InMemoryRandomAccessStream())
{
BitmapEncoder编码器=等待BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId,ms);
编码器。设置软件EBITMAP(软);
尝试
{
等待编码器。FlushAsync();
}
捕获{}
数组=新字节[ms.Size];
等待ms.ReadAsync(array.AsBuffer(),(uint)ms.Size,InputStreamOptions.None);
}
返回数组;
}
另外,如果您有一个最佳的实现…;-)