在BlackBerry上显示缩放图像

时间:2010-12-11 10:56:25

标签: blackberry image-manipulation

我的BlackBerry应用程序应从Web服务获取图像并将图像显示为缩略图。任何人都可以告诉我如何实现这个目标吗?

3 个答案:

答案 0 :(得分:5)

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

请注意,scaleImage32采用'int'参数,但它们是定点数,与更广为人知的浮点数相反。要获得所需的定点值,请使用Fixed32

中的实用程序方法

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

此代码可以帮助您

        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();

这将从您的Web服务URL生成字节数组。这里bb是字节数组。

BB中有两个处理图像的类。 EncodedImageBitmap都有构造函数,可以从字节数组生成图像。我建议使用Bitmap,它具有简单的图像重新调整大小的能力。