Ubuntu环境
下载完代码后:
1.在src目录下,cmake .得到了Makefile文件;(我这里执行过了,跳过)
2.Makefile
3.修改example代码,在src目录下执行make,得到bin目录和可执行文件;
4.修改code直接运行 ./example
添加了一行输出来测试一下功能;
如图,输出;
main函数在examle.cpp中,编译文件的书写看起来很复杂,直接在example中重新写一个试一试了;
自己建立文件来使用库:
如上:
大概意思是增加了两个可执行问价年最后输出名字是example和example_share;
可执行文件example链接到两个函数库,heif_static heif_write_static;
可执行文件example_share链接到两个函数库heif_shared heif_writer_shared;
这几个函数库具体怎么生成的看其它目录下的CMakeLists.txt,(暂时没深入研究);
所以自建立文件来用库函数直接改一下这个文件就ok了;
set(EXAMPLE_EXE MyFileName)
set(EXAMPLE_SRCS MyFileName.cpp)
重新cmake一遍执行make;
MyFileName = Test,重新操作一遍,使用成功;
分析example8 拿到exif信息的过程:
reader->initialize(filename)//完成了对数图片数据的结构分解;
reader->getFileInformation(fileInfo);//拿到分解后的数据;
reader->getPrimaryItem(primaryItemId);//拿到主图的ItemId
reader->getReferencedToItemListByType(primaryItemId, "cdsc", metadataIds);//通过主图的id拿到了主图cdsc(内容描述的所有Metadata)描述相关的metaId;
ImageId exifItemId = metadataIds[0];//为什么是0?不知道
reader->getItemType(exifItemId, itemType);拿到里面的itemtype;
example8好像有问题?跑不了;
找不到exifItemId return了.....
注释掉比较itemId后得到bin:
可以看到0x0112代表方向信息,后面是3,表示bottom;
具体exif的bin文件怎么解后面在学;