【发布时间】:2010-12-11 23:23:14
【问题描述】:
我的 BlackBerry 应用程序应该从 Web 服务获取图像并将图像显示为缩略图。谁能告诉我如何实现这一目标?
【问题讨论】:
标签: blackberry image-manipulation
我的 BlackBerry 应用程序应该从 Web 服务获取图像并将图像显示为缩略图。谁能告诉我如何实现这一目标?
【问题讨论】:
标签: blackberry image-manipulation
petteri 关于使用 EncodedImage 和 scaleImage32() 是正确的。具体来说,您需要将createEncodedImage(byte[] data, int offset, int length) 与Web 服务返回的字节一起使用。
请注意,scaleImage32 采用“int”参数,但它们是定点数,与更广为人知的浮点数不同。要得到你想要的定点值,请使用Fixed32中的实用方法
最后,如果您不需要 BlackBerry 应用程序中的原始图像,如果 Web 服务进行缩放,您将获得更好的整体体验。这将减少传输到设备的字节数,并减少设备上为缩放图像而进行的计算。在服务器上进行缩放也可能会产生更高质量的缩放图像,因为 scaleImage32() 使用了相当基本的算法。
【讨论】:
我也不完全熟悉 BB,但由于没有其他人回答您的问题,请查看 EncodedImage 类,其中方法 scaleImage32() 应该会返回缩放版本。
【讨论】:
这段代码可以帮助你
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 中有两个类处理图像。 EncodedImage 和 Bitmap 都有从字节数组生成图像的构造函数。我推荐使用位图,它具有简单的图像调整大小功能。
【讨论】: