【问题标题】:c# uwp winrt Image or Bitmap Image to base64c# uwp winrt Image 或 Bitmap Image to base64
【发布时间】:2016-07-29 19:43:30
【问题描述】:

BitmapImage bitmap = new BitmapImage(new Uri("ms-appx:///Assets/Video.png"));

我正在尝试将位图图像转换为 base64 到通用应用程序上的字符串。您知道它是如何实现的吗?

【问题讨论】:

  • 您不回复或不投票/标记人们对您的答案给出的答案的原因是什么?人们投入工作是为了帮助,我们至少能做的就是给予人们声誉作为奖励。

标签: c# windows-runtime win-universal-app


【解决方案1】:

您必须将图像转换为字节。然后就可以拨打Convert.ToBase64String.

有几个很好的信息来源:

Reading and Writing Base64 in the Windows Runtime

Codepaste

总结这些,将Image转换为base64,你应该可以使用以下方法:

        var bitmap = new RenderTargetBitmap();
        await bitmap.RenderAsync(ImageControl);

        var image = (await bitmap.GetPixelsAsync()).ToArray();
        var width = (uint) bitmap.PixelWidth;
        var height = (uint)bitmap.PixelHeight;

        double dpiX = 96;
        double dpiY = 96;

        var encoded = new InMemoryRandomAccessStream();
        var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, encoded);

        encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Straight, width, height, dpiX, dpiY, image);
        await encoder.FlushAsync();
        encoded.Seek(0);

        var bytes = new byte[encoded.Size];
        await encoded.AsStream().ReadAsync(bytes, 0, bytes.Length);

        var base64String = Convert.ToBase64String(bytes);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 2022-12-28
    相关资源
    最近更新 更多