【发布时间】:2010-10-18 18:08:46
【问题描述】:
下面的代码作为调用TakePicture后的jpeg图片回调执行。如果我将数据保存到磁盘,它是 1280x960 jpeg。我试图改变图片大小,但这是不可能的,因为不支持更小的尺寸。 JPEG 是唯一可用的图片格式。
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
FileOutputStream out = null;
Bitmap bm = BitmapFactory.decodeByteArray(data, 0, data.length);
Bitmap sbm = Bitmap.createScaledBitmap(bm, 640, 480, false);
data.Length 正如预期的那样是 500k。执行 BitmapFactory.decodeByteArray() 后,bm 的高度和宽度为 -1,因此看起来操作失败。
- 我不清楚 Bitmap 是否可以处理 jpeg 数据。我认为不会,但我似乎有一些代码示例似乎表明它是。
- 在解码和缩放之前数据是否需要为位图格式?
- 如果是这样,该怎么做?
谢谢!
【问题讨论】: