【问题标题】:Display scaled image on BlackBerry在 BlackBerry 上显示缩放图像
【发布时间】:2010-12-11 23:23:14
【问题描述】:

我的 BlackBerry 应用程序应该从 Web 服务获取图像并将图像显示为缩略图。谁能告诉我如何实现这一目标?

【问题讨论】:

    标签: blackberry image-manipulation


    【解决方案1】:

    petteri 关于使用 EncodedImage 和 scaleImage32() 是正确的。具体来说,您需要将createEncodedImage(byte[] data, int offset, int length) 与Web 服务返回的字节一起使用。

    请注意,scaleImage32 采用“int”参数,但它们是定点数,与更广为人知的浮点数不同。要得到你想要的定点值,请使用Fixed32中的实用方法

    最后,如果您不需要 BlackBerry 应用程序中的原始图像,如果 Web 服务进行缩放,您将获得更好的整体体验。这将减少传输到设备的字节数,并减少设备上为缩放图像而进行的计算。在服务器上进行缩放也可能会产生更高质量的缩放图像,因为 scaleImage32() 使用了相当基本的算法。

    【讨论】:

    • 只是为了补充迈克尔的回应,如果您无法在服务器上进行缩放并且必须在设备中进行,您可以使用 5.0 API 使用 Bitmap.scaleInto() 进行更好的质量缩放跨度>
    • 非常感谢...我一定会尝试解决方案
    【解决方案2】:

    我也不完全熟悉 BB,但由于没有其他人回答您的问题,请查看 EncodedImage 类,其中方法 scaleImage32() 应该会返回缩放版本。

    【讨论】:

    • 感谢您的回复..我一定会检查出来:)
    【解决方案3】:

    这段代码可以帮助你

            connection = (HttpConnection) Connector.open(fullUrl.toString(),
                Connector.READ_WRITE, true);
    
    
            InputStream is = hc.openInputStream();
    
            DataInputStream dis = new DataInputStream(is);
            ByteArrayOutputStream bStrm = new ByteArrayOutputStream();
    
            int ch;
            while ((ch = dis.read()) != -1) {
                // System.out.println((char) ch);
                // msg = msg + (char) ch;
                bStrm.write(ch);
            }
            bb = bStrm.toByteArray();
    

    这将从您的网络服务 url 生成字节数组。这里bb 是字节数组。

    在 BB 中有两个类处理图像。 EncodedImageBitmap 都有从字节数组生成图像的构造函数。我推荐使用位图,它具有简单的图像调整大小功能。

    【讨论】:

    • 非常感谢...我一定会尝试解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 2011-02-06
    相关资源
    最近更新 更多