在 C# 中为 WindowsPhone 8 调整 WriteableBitmap 的大小

Posted

技术标签:

【中文标题】在 C# 中为 WindowsPhone 8 调整 WriteableBitmap 的大小【英文标题】:Resize a WriteableBitmap in C# for WindowsPhone 8 【发布时间】:2014-10-16 18:08:05 【问题描述】:

如何将 WriteableBitmap 的大小从 2768x2768 调整为 1500x1500?

我找不到任何可扩展的选项,并且所有其他代码都与 W 不兼容

谢谢!

【问题讨论】:

【参考方案1】:

您可以使用以下代码调整图像大小

    public byte[] ChangeDimension(BitmapImage bitmapImage, int width, int height)
    
        byte[] data = null;
        using (MemoryStream stream = new MemoryStream())
        
            WriteableBitmap wBitmap = new WriteableBitmap(bitmapImage);
            wBitmap.SaveJpeg(stream,width, height, 0, 100);
            stream.Seek(0, SeekOrigin.Begin);
            data = stream.GetBuffer();
        
        return data;
    

【讨论】:

【参考方案2】:

安装nuget包WriteableBitmapEx(可写位图扩展)。

它提供了Resize()扩展方法。

另一个选项是 PictureDecoder 类,它允许加载图像的缩放版本(如果是 JPEG)。

【讨论】:

这些不起作用我仍然收到“图像太大”错误。我的 OCR 库仅允许 2600x2600 pixelwdith/pixelheight,使用此工具裁剪/调整大小后,我仍然收到错误消息。 啊对,可写位图有大小限制,2000x2000 至少 2600x2600。我用后置摄像头拍摄的图像是 2000x2000,所以我想这很好。我需要将它们裁剪为 800x600 我也在 PixelWidth/PixelHeight 中读取这些值。如何降低这些? 如果我没听错的话,你的问题不是调整位图大小,而是 OCR 库出现错误?

以上是关于在 C# 中为 WindowsPhone 8 调整 WriteableBitmap 的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Azure 在 Windows Phone 8 中为特定设备发送推送通知

在 C# 中为面板创建布局时遇到问题

Windows Phone 8 的 C# IMAP SMTP 邮件客户端

windows phone 8.1 调用rest api c#

Windows Phone 8 按钮文本动画 - C# / XAML

Windows Phone 8 从麦克风 C# 录制声音