Nokia提供的HEIF开源代码使用

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文件怎么解后面在学;




 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 如果您想将图像从其他格式转换为HEIF(High Efficiency Image Format)格式,可以使用以下代码: ``` import imageio def convert_to_heif(input_file, output_file): image = imageio.imread(input_file) imageio.imwrite(output_file, image, format='heif') # 调用转换函数 convert_to_heif('input.jpg', 'output.heif') ``` 此代码使用了 Python 库 `imageio`,因此需要先安装该库,可以使用以下命令进行安装: ``` pip install imageio ``` 希望对您有所帮助! ### 回答2: 转换HEIF(High Efficiency Image Format)的代码可以使用图像处理库来实现。以下是一个示例,使用Pillow库进行转换: ```python from PIL import Image def convert_to_heif(image_path, output_path): # 打原始图像 image = Image.open(image_path) # 将图像保存为HEIF格式 image.save(output_path, 'heif') # 示例用法 convert_to_heif('input.jpg', 'output.heic') ``` 在这个示例中,`convert_to_heif`函数接收两个参数:原始图像的路径和输出HEIF图像的路径。首先,它使用Pillow库的`Image.open`方法打原始图像。然后,它使用`save`方法将图像保存为HEIF格式,并指定文件的输出路径和文件类型('heif')。最后,通过调用`convert_to_heif`函数,可以将指定的JPG图像转换为HEIF图像。 请注意,上述示例代码仅适用于安装了Pillow库的Python环境,并且HEIF文件格式的读取和写入已经在该库中配置。如果您的环境不满足这些要求,您可能需要使用其他工具或库来完成HEIF格式的转换。 ### 回答3: 转换图片格式为HEIF格式的代码如下: ``` import cv2 def convert_to_heif(image_path, output_path): # 读取输入图片 image = cv2.imread(image_path) # 构建HEIF编码器 heif_encoder = cv2.heif_writer(output_path) # 将图片写入HEIF编码器 heif_encoder.write(image) # 释放HEIF编码器 heif_encoder.release() print("图片已成功转换为HEIF格式") # 示例使用 input_image = "input.jpg" output_image = "output.heif" convert_to_heif(input_image, output_image) ``` 上述代码中,使用了OpenCV库的heif_writer函数来实现将图片转换为HEIF格式。首先通过`cv2.imread`读取输入图片,然后创建一个HEIF编码器对象`heif_encoder`。接下来,使用`heif_encoder.write`将输入图片写入HEIF编码器,最后通过`heif_encoder.release()`释放编码器。转换完成后,会打印出"图片已成功转换为HEIF格式"的提示信息。 示例中的输入图片为"input.jpg",输出图片为"output.heif",可以根据实际情况修改。需要确保在运行代码之前已经安装了OpenCV库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值