标签: libexif

整数溢出不一致

请原谅我这个问题.我寻找类似问题的答案,但我仍然对我的问题感到困惑.所以无论如何我会拍这个问题.我正在使用名为libexif的C库处理图像数据.我在我的Linux桌面和MIPS板上运行我的应用程序(使用此库).对于特定的图像文件,当我尝试获取创建的时间时,我收到错误/无效值.在进一步调试时,我看到对于这个特定的图像文件,我没有按预期获得标记(EXIF_TAG_DATE_TIME).

该库具有多个实用功能.大多数功能的结构如下

int16_t 
exif_get_sshort (const unsigned char *buf, ExifByteOrder order)
{
    if (!buf) return 0;
        switch (order) {
        case EXIF_BYTE_ORDER_MOTOROLA:
                return ((buf[0] << 8) | buf[1]);
        case EXIF_BYTE_ORDER_INTEL:
                return ((buf[1] << 8) | buf[0]);
        }

    /* Won't be reached */
    return (0);
}

uint16_t
exif_get_short (const unsigned char *buf, ExifByteOrder order)
{
    return (exif_get_sshort (buf, order) & 0xffff);
}
Run Code Online (Sandbox Code Playgroud)

当库试图调查原始数据中是否存在标记时,它会调用exif_get_short()并将返回的值赋给一个类型为enum(int)的变量.

在错误情况下,exif_get_short()应该返回无符号值(34687)返回一个负数(-30871),这会从图像数据中提取整个标记提取.

34687超出了最大可表示的int16_t值的范围.因此导致溢出.当我在代码中进行这种轻微修改时,一切似乎都运行正常

uint16_t
exif_get_short (const unsigned char *buf, ExifByteOrder order)
{
    int …
Run Code Online (Sandbox Code Playgroud)

c integer-overflow libexif

8
推荐指数
1
解决办法
462
查看次数

Libexif,附加新的exif数据

我有一项任务是编辑exif标记并向其添加特定于应用程序的值.如果exif标签存在,libexif非常乐意编辑它们.但是如果exif标签不存在,我将不得不创建它们并将它们附加到文件中.libexif使用C fopen所以我认为没有一些IO操作会有一个简单的方法.我正在考虑将原始图像数据放入内存中,fopen(newfile,'w')添加exif数据然后追加图像数据.
只有当有人知道更简单的方法时,(我受限于libexif,libexiv2可能会产生一个liscence冲突).

c c++ jpeg libexif

6
推荐指数
1
解决办法
2065
查看次数

android image exif阅读器第三方api

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

android libexif

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

如何在源图像文件(如JPEG,TIFF,PSD)中编写修改过的exif?

我使用libexif来读取和修改JPEG文件中的exif元数据.我不确定如何在原始源图像文件中编写/保存修改后的内容?

有任何想法吗??谢谢.

jpeg exif libjpeg libexif libjpeg-turbo

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

在iOS照片库/ LIbrary中编辑Exif数据而不创建另一个副本

有没有办法编辑/修改照片的exif数据,这些数据是iPhone上iOS照片库/图库的一部分.每当我尝试这样做时,iOS会尝试将其另存为单独的图像文件.但是,我想修改exif数据,而不创建另一张照片副本.我使用了下面链接中提到的libexif,但是libexif允许你读取和修改数据,但我无法想出一种存储在同一文件中的方法.IOS中的图库API(ALAsset,PhotoKit)似乎不提供对底层物理文件的直接访问.它们仅提供用于访问/更新或插入图像内容的API.他们似乎没有修改exif数据的api.此外,libexif似乎适用于原始文件名路径.有没有办法使用PhotoKit或ALAsset获取原始文件名?

我错过了什么吗?任何帮助或指示将深表感谢.

如何在不加载图像的情况下为文件系统上的现有图像编写或修改EXIF数据?

在iOS上使用修改后的元数据(无重新编码)保存原始图像数据

exif libexif ios alassetslibrary photokit

5
推荐指数
0
解决办法
685
查看次数

Libexif未定义的引用错误

我有一个使用libexif C库的程序http://libexif.sourceforge.net/

我安装了库,它位于/ usr/include/libexif

我将这些包含在程序的顶部

#include <libexif/exif-data.h>
#include <libexif/exif-content.h>
#include <libexif/exif-entry.h>
Run Code Online (Sandbox Code Playgroud)

我的编译声明:

`gcc -o test test.c` 
Run Code Online (Sandbox Code Playgroud)

当我编译时,我得到这些错误

/tmp/ccUUWpcw.o: In function `show_tag':
test.c:(.text+0x91): undefined reference to `exif_content_get_entry'
test.c:(.text+0xc0): undefined reference to `exif_entry_get_value'
test.c:(.text+0xef): undefined reference to `exif_tag_get_name_in_ifd'
/tmp/ccUUWpcw.o: In function `main':
test.c:(.text+0x179): undefined reference to `exif_data_new_from_file'
test.c:(.text+0x1cd): undefined reference to `exif_data_unref'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

该程序看到很好地读取包含的文件,但由于某种原因不知道这些功能.我在安装库时所做的就是解压缩它,./ configure,make && make install

我是否需要在其他地方引用此库或类似的东西?

谢谢你的帮助!

c linux libexif

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

在mac OS开发中获取exif数据

我是Objective-C的新手,我正试图在我的Mac OS应用程序中获取某些图像的exif数据.看起来我需要一个C库来获取exif数据,所以我google了一下,找到了一些C库,但我正在努力实现它们.

1我是否需要获取C库才能读取从DSLR相机拍摄的图像上的exif数据?(就像约会日期一样)

  1. 我尝试了这个库http://libexif.sourceforge.net/,我在网站上挖掘并从这里下载:http://www.hmug.org/pub/MacOS_X/BSD/Libraries/Graphics/libexif/,转到此链接:http://www.hmug.org/pub/MacOS_X/BSD/Libraries/Graphics/libexif/libexif-0.6.21-1-osx8.tar.gz

  2. 我把这些文件打包成xcode,看起来文件正确地添加到我的库中,我想.在此输入图像描述

  3. 我现在不确定如何使用这些C类.我尝试包含这样的文件

    #include "exif-data.h"

    #include "exif-loader.h"

这是正确的吗?我应该采取不同的方式吗?

  1. 然后我对使用感到困惑.在这里的文档页面http://libexif.sourceforge.net/api/它说

使用libexif的应用程序通常会首先创建一个ExifLoader来将EXIF数据加载到内存中.从那里,它将提取数据作为ExifData开始操纵它.每个IFD由ExifData中的自己的ExifContent表示,其中包含ExifEntry形式的所有标记数据.如果需要MakerNote数据,可以从ExifData中提取ExifMnoteData并使用MakerNote函数进行操作.

"创建ExifLoader"的语法是什么?

对不起,这是一个菜鸟问题!任何帮助表示赞赏.

macos objective-c libexif

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