java - 我如何从 Android 上的相机选择的图像中获得正确的宽度和高度?

标签 java android

我需要做以下事情:

  1. 使用 Android 相机拍摄照片...
  2. 从图像中删除背景并放入另一个背景
  3. 保存

我很好地完成了这 3 个步骤... 问题是图像以小尺寸 (160 x 120) 保存。 当我从相机得到结果时,我会这样做:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        if (requestCode == CAMERA_REQUEST) {  
            Bitmap photo = (Bitmap) data.getExtras().get("data");
            Log.i("Test", "Width: " + photo.getWidth() + " Height: " + photo.getHeight());

返回

Width: 160 Height: 120

我从“数据”变量中获取的图像是 1280 x 960...

如果我用

background= Bitmap.createScaledBitmap(background, 1280, 960, false);

我得到的图像质量很差...

如何获得正确大小的位图?!

最佳答案

尝试将图像写入文件,然后返回文件名作为结果:

@Override
public void onPictureTaken(byte[] data, Camera camera) {
  File pictureFile = new File(filename);

  try {
    FileOutputStream fos = new FileOutputStream(pictureFile);
    fos.write(data);
    fos.close();
  } catch (Exception e) {
  }

  Intent intent = this.getIntent();
  intent.putExtra("filename", filename);
  this.setResult(RESULT_OK, intent);
  finish();
}

关于java - 我如何从 Android 上的相机选择的图像中获得正确的宽度和高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12326517/

相关文章:

java - 提交并关闭事务后,将新类添加到图表中 - 新的 Tx 在模式中看不到该类,尽管它已被持久化

java - 奇怪的 Math.sin 行为

java - richer如何适配服务激活器和网关接口(interface)?

android - 查找Audio.Media项的路径

android - 如何更改 react-native 中的默认 fontFamily

java - 如何使用 SharedPreferences 检查用户是否正在使用应用程序?

Java 为新连接重新打开 ServerSocket

android - 将变量传递给 ViewBinder

android - 如何缩小导航图标和工具栏标题之间​​的差距?

java - 使用 SSPI 从运行在 Windows 上的 Java 应用程序获取 SSO