python将苹果的.HEIC文件转化成.jpg文件报错

1. 问题

使用如下脚本,将.HEIC文件转化成.jpg文件时,报错:

from PIL import Image
import whatimage
# import pyheif
import glob
import time
import os
import cv2heic_img_path = './IMG_6915.HEIC'
save_path = heic_img_path[:-5] + ".jpg"
print('111')
with open(heic_img_path, 'rb') as f:heic_img = f.read()
print('222')
# 确认图片真实格式
img_format = whatimage.identify_image(heic_img)
print('img_format = ', img_format)
if img_format in ['heic']:# 读取文件内容img = pyheif.read(heic_img)print('img:', img)# 重新写入文件并保存pi = Image.frombytes(mode=img.mode, size=img.size, data=img.data)pi.save(save_path, format="jpeg")
print('save_path:', save_path)

报错为:
`
import pyheif
File “/Users/lib/python3.7/site-packages/pyheif/init.py”, line 4, in
import _libheif_cffi
import _libheif_cffi
ImportError: dlopen(/Users/lib/python3.7/site-packages/_libheif_cffi.abi3.so, 2): Symbol not found: _heif_brand_to_fourcc
Referenced from: /Users/lib/python3.7/site-packages/_libheif_cffi.abi3.so
Expected in: flat namespace
in /Users/lib/python3.7/site-packages/_libheif_cffi.abi3.so

Process finished with exit code 1

`

2. 问题原因

python调用pyheif时,缺少C++的可执行文件

3. 解决方案

4.iphone上面的图片格式有哪几种?

python处理.HEIC文件
Symbol not found: _heif_brand_to_fourcc
Expected in: flat namespace
mac m1 import pyheif 报错

查看全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dgrt.cn/a/69150.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章:

python将苹果的.HEIC文件转化成.jpg文件报错

1. 问题
使用如下脚本,将.HEIC文件转化成.jpg文件时,报错:
from PIL import Image
import whatimage
# import pyheif
import glob
import time
import os
import cv2heic_img_path ./IMG_6915.HEIC
save_path heic_img_path[:-5] &quot……

如何快速晋升自动化测试工程师,10年软测大佬分享的一些经验~

我想应该有很多测试人员应该有这样的疑虑,自动化测试要怎么去做,现在我把自己的一些学习经验分享给大家,希望对你们有帮助,有说的不好的地方,还请多多指教! 对于测试人员来说,不管进行功能测试还……

atguigu3 分布式锁(product/category)

0. 问题:
本地缓存和分布式缓存_价值成长的博客-CSDN博客
读模式的缓存失效问题_价值成长的博客-CSDN博客
写模式的缓存一致性问题_价值成长的博客-CSDN博客
使用分布式锁解决读模式缓存失效(缓存击穿)和写模式缓存一致性问题&#xff01……

2022 年值得推荐的 Vue 库

2022 年值得推荐的 Vue 库!
今天来推荐几个实用的 Vue 库!
状态管理 (1)Pinia Pinia 是最新一代的 Vue 轻量级状态管理库。它适用于 Vue 2.x 和 Vue 3.x。它是 Vue 官方成员在2019年11月重新设计的一个状态存储库,它……

Sigrity PowerDC仿真–步骤

#1, 打开Cadence Sigrity Suite Manger #2, Convert *.brd into *.spd #3, 启动Power DC Cadence System Analysis Sigrity\PowerDC,双击
#4, Load *.spd file Manage Layout\Load Layout File
#5, 检查叠构Check Stack-up Intial Setup\Check Stac……

Linux内核移植2

在Linux中添加自已的开发板
2.1 添加开发板默认配置文件
1、将arch/arm/configs目录下的imx_v7_mfg_defconfig文件重新复制一份并命名为imx_alientek_emmc_defconfig,此后该文件就是自已开发板的默认配置文件了命令如下:
cd arch/arm/configs
cp imx_……

【IEEE/ACM专区】一篇高质量的IEEE/ACM Transaction论文是如何顺利发表的?

对于国内计算机领域的专业人士来说,CCF期刊当然是投稿首选,因为CCF(中国计算机学会)在国内的整体影响力和渗透力毋庸置疑。但就国际学术影响力而言,CCF与美国计算机协会(ACM)、电气和电子工程师协会(IEEE)等一流学会相差甚远。甚至有部分985高……

Flutter教程之深入了解 Flutter 数据库,在应用程序的整个生命周期中保留数据

这里不是一个不必保存数据的应用程序。如果你想持久化这些数据,数据库实际上是你唯一的选择。此外,如果您想在开发者旅程开始时避免使用服务器和潜在成本,您需要将用户的文件本地存储在单个设备上。
这就是 SQLite 和 Hive 等解决方案的用武之地。由于我一直在使用 SQLite,……

WebRTC音视频通话(三)整合websocket

这里只写script部分,html和webrtc-util.js在上一篇有https://blog.csdn.net/m0_60259116/article/details/127230338
一、引入js
<script src"./js/webrtc-util.js" type"text/javascript"></script>二、整合websocket
需要注意……

算法 – 连续字母长度

目录
题目描述
输入描述
输出描述
用例
题目解析
算法源码 题目描述
给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。 输入描述
第一行有一个子串(1<长……

一、lua基础知识1

一、lua 的数据类型
–类型 a1; –number print(type(a)) –number b"HelloWorld"; print(type(b)) –string 两种数据类型 ctrue; print(type(c)) –boolean true 或者 false d print; d("HelloWorld"); print(type(d)); –function类型 ……

二、lua语言基础2

1.lua的类型有哪些?答:lua的数据类型有:number,string,nil function,table,thread,userdata(用户自定义的类型),boolean(布尔类型) 2.什么是尾调用,尾调用有什么优点尾调用:在一个函数的最后一步开始调用另……

quick-cocos2dx-luaUI控件讲解

–MyApp部分 require("config") require("cocos.init") require("framework.init") local MyApp class("MyApp", cc.mvc.AppBase) function MyApp:ctor() MyApp.super.ctor(self) end function MyApp:run() cc.FileUti……

quick-cocos2dx lua语言讲解 (动作,定时器,触摸事件,工程的类的讲解)

–MainScene部分
— display.newScene 创建一个场景 — 在quick里面我们的控件、精灵 一般是加载到场景上的 local MainScene class("MainScene", function() return display.newScene("MainScene") end) function MainScene:ctor() –创……

使用quick-cocos2dx-lua 实现的小游戏(包含碰撞检测,触屏发子弹)

–主界面local MainScene class("MainScene", function()return display.newScene("MainScene")end)ON true;function MainScene:ctor()local bg cc.Sprite:create("main_background.png");bg:setScale(2);bg:setPosition(display.cx,display……

cocos2d-js 中scrollview详解

/****
开头的一些废话:
1、多思考,善于思考
2、懂得变通
3、多多查询API首先复制一段 API中的源码:(UIScrollView.js)这段代码可以看出 scrollview
中的容器是一个node,并且他的位置是:代码最后……

cocos2d-js中的回调函数中世界坐标系和节点坐标系的相互转换

世界坐标系和节点坐标系都是OPENGL 坐标系 1、世界坐标系原点就是屏幕的左下角; 2、节点坐标系的原点就是一个节点的左下角; 3、两个坐标系可以通过已经写好的cocosAPI进行想换转换; 4、所有的节点需要转为一个节点上或者是统一的世界坐标系……

通过JavaScript实现漂浮

<html>
<head><meta http-equiv"Content-Type" content"text/html"; charset"gb2312" /><title>漂浮广告</title><style type"text/css">div{position:absolute;}</style>
</head>
&……

序列动画和图片内存问题

一、帧动画问题 /*** 帧动画总结:* 1、如果精灵进行新建时,加载了纹理,那么setRestoreOriginalFrame可以设置为false或者true* 2、如果精灵新建时,没有加载纹理的话,那么setRestoreOriginalFrame需要设置为false&#……

冒泡排序的两种写法

//第一种写法: #include <iostream> using namespace std; void bubbleSort(int arr[], int n) { for (int i 0; i < n-1; i) { int temp 0; for (int j i1; j <n; j) { if (arr[i] ……

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注