相关疑难解决方法(0)

关于如何从URI获取Exif数据的最终答案

这里已经讨论了很多问题,主要是不同的结果,并且由于API的变化和不同类型的URI,没有明确的答案.

我自己没有答案,但让我们谈谈它.该ExifInterface有一个接受一个构造函数filePath.这本身很烦人,因为现在不鼓励依赖路径 - 你应该使用Uris和ContentResolver.好.

我们的Uri名字uri可以从意图中检索出来onActivityResult(如果您从图库中选择图片ACTION_GET_CONTENT)或者可以是Uri我们之前拥有的(如果您从相机中选择图片并打电话intent.putExtra(MediaStore.EXTRA_OUTPUT, uri)).

API <19

我们uri可以有两种不同的模式:

  • 来自相机的Uris大多都有file://架构.那些很容易治疗,因为他们坚持这条道路.你可以打电话new ExifInterface(uri.getPath()),你就完成了.
  • 来自画廊或其他内容提供商的Uris通常都有一个content://界面.我个人不知道那是什么,但让我发疯.

据我所知,第二种情况应该用ContentResolver你能得到的东西来对待Context.getContentResolver().以下适用于我测试的所有应用程序,无论如何:

public static ExifInterface getPictureData(Context context, Uri uri) {
    String[] uriParts = uri.toString().split(":");
    String path = null;

    if (uriParts[0].equals("content")) {
        // we can use ContentResolver.
        // let’s query the DATA column which …
Run Code Online (Sandbox Code Playgroud)

android uri exif android-intent android-contentresolver

34
推荐指数
3
解决办法
1万
查看次数

Camera API:跨设备问题

我正在开发一个相机应用程序,基本上作为消息应用程序的一部分来附加图像等.该应用程序需要工作> = SDK 2.2和:

不能像我喜欢的那样使用默认的Android相机,因为:

  1. 该应用程序的性质决定了图像不应该保存到磁盘,一些OEM(三星)喜欢这样做而不给你一个选择.

  2. 我无法调用任何其他相机应用程序可以拦截的意图,因为那时该应用程序可以保存图像.

我目前的问题是处理Android相机显然不喜欢纵向的事实.具体来说,经过一些挖掘后,我正在监控显示屏,并在轮换时调用setDisplayOrientation(90).这可以工作,但是surfaceview维度也需要更改,这必须在支持的维度内完成,否则参数设置会使应用程序崩溃.

我正在使用我在这里找到的另一个SO片段(getBestPreviewSize()方法)这样做,但它有一个明显的问题,我无法相信我没有找到其他人.

该部分takePicture的生命周期涉及调用PostView图片回调.这将显示当前暂停SurfaceView图像的静止图像,该图像将通过byteArray返回到原始和/或jpeg回调.我的问题是,这个图像在一些看似随机的测试设备上仍然存在偏差!因此,行为是用户以完美的4:3宽高比看到动态相机图像,直到他们拍摄照片并且他们呈现的图像被压扁.请注意,字节数组本身是正确的,当我Bitmap在消息传递端点构造它时,它显示正常,但这仍然是一个问题.

此时我无法看到如何改变静止图像显示.谁能帮我这个?

java camera android

14
推荐指数
1
解决办法
1921
查看次数

android image exif阅读器第三方api

是否有任何第三方api for android从图像中读取exif标签,支持从1.5开始的api级别.

android libexif

5
推荐指数
1
解决办法
9392
查看次数

我想在android中读取图像中的exif信息。我可以从图库中的图像读取 exif,但无法读取从相机拍摄的 exif 照片

示例图像

如上图所示,我选择的是拍照,exif信息为空。我从手机选项中选择了图像,并且 exif 信息不为空。

camera gps android exif metadata

5
推荐指数
1
解决办法
1万
查看次数

Android 从 byte[] 数据中提取 EXIF 元数据

我有一个自定义相机应用程序。我需要自定义相机捕获的图像的元数据。我在解码字节数组(Constant.imageData1 = data;)之前保存了字节数据,并将其保存到字节类型的常量类中,在使用此字节数据之前,我将其转换为字符串。当我要使用 ExifInterface 执行它并将其显示到日志时,应用程序崩溃了。

这是我的 OnPictureTaken 方法:

PictureCallback mPicture = new PictureCallback() {
    @Override
    public void onPictureTaken(byte[] data, Camera camera) {
        Constant.imageData1 = data;
        Log.e("Camrera", "22222222222222222");
        BitmapFactory.Options bfo = new BitmapFactory.Options();
        bfo.inDither = false;
        // bfo.inJustDecodeBounds = true;
        bfo.inPurgeable = true;
        bfo.inTempStorage = new byte[16 * 1024];

        Intent intent = new Intent(context, PreviewActivity.class);
        // intent.putExtra("data", data);
        Bitmap bitmapPicture = BitmapFactory.decodeByteArray(data, 0,
                data.length, bfo);
        Matrix matrix = new Matrix();
        if (Constant.result == 180) {
            matrix.postRotate(270);
        }
        if (Constant.result == 270) …
Run Code Online (Sandbox Code Playgroud)

android exif metadata android-camera

4
推荐指数
1
解决办法
1万
查看次数