gpt4 book ai didi

android - 在保存到 SD 之前缩放相机图片大小的最佳方法

转载 作者:行者123 更新时间:2023-11-29 15:32:58 26 4
gpt4 key购买 nike

下面的代码作为调用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 数据。我不这么认为,但我似乎有一些代码示例似乎表明它是。
  • 在解码和缩放之前数据是否需要为位图格式?
  • 如果可以,该怎么做?

谢谢!

最佳答案

在您的 surfaceCreated 上,您通过代码设置相机的图片大小,如下面的代码所示:


public void surfaceCreated(SurfaceHolder holder) {
camera = Camera.open();
try {
camera.setPreviewDisplay(holder);
Camera.Parameters p = camera.getParameters();
p.set("jpeg-quality", 70);
p.setPictureFormat(PixelFormat.JPEG);
p.setPictureSize(640, 480);
camera.setParameters(p);
} catch (IOException e) {
e.printStackTrace();
}
}

关于android - 在保存到 SD 之前缩放相机图片大小的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3962030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com