使用Python将iOS快照从KTX格式转换为PNG

news/2025/10/24 23:10:28/文章来源:https://www.cnblogs.com/qife122/p/19164401

KTX to PNG in Python for iOS snapshots

iOS上的应用快照以KTX文件格式存储,这一点由于Geraldine Blay(@i_am_the_gia)和Alex Brignoni(@AlexisBrignoni)在此处和此处的研究而变得相当知名。他们甚至提出了一种收集并将其转换为PNG格式的方法。然而,该解决方案仅适用于macOS,因此有了这项研究。

KTX

KTX是一种用于存储纹理的文件格式,通常被OpenGL程序使用。KTX文件格式的详细信息可在此处获取。由于它主要用于游戏,而不是用于读取/分发独立纹理,因此没有太多独立的实用程序可以处理KTX文件。也没有现成的Python库来读取它!创建该格式的Khronos小组分发了libktx,但它仅支持C++。即便如此,它也无法读取iOS创建的ktx文件(原因如下所述)。我能找到的少数Windows应用程序(如PicoPixel)无法将Apple创建的KTX文件识别为有效文件。

那么这里有什么不同?在十六进制编辑器中快速浏览文件显示,纹理数据以LZFSE压缩形式存储,目前只有macOS/iOS可以读取。

图 - 010十六进制编辑器的ASCII视图,带有ktx模板

现在使用pyliblzfse,我可以解压缩数据,并重新创建一个包含原始纹理数据的新KTX文件。即便如此,除了macOS的Finder/Quickview和Preview之外,其他KTX查看器也无法渲染它。因此,我尝试了几种不同的方法来获取数据。

尝试1 - 渲染和导出

纹理与2D图像不同,因此没有从纹理到图像格式的直接转换。根据现有的研究,似乎最简单的方法是使用OpenGL渲染从KTX文件中提取的纹理数据,然后使用OpenGL保存渲染图像的2D图像。互联网上也有一些示例代码,但为了使其工作,需要了解如何使用OpenGL渲染纹理,这对我来说学习曲线太陡峭了。

在花了几个小时尝试在Python中实现这一点后,我最终放弃了,因为Python不是主要进行OpenGL开发的平台,因此支持很少甚至没有,而且库依赖于平台。我勉强在Linux中正确安装了一个库,但每一步都遇到了比我想调试的更多的错误,最终我放弃了。

尝试2 - 将纹理数据转换为RAW图像数据

读取KTX文件头,对于所有iOS生成的KTX文件,头中的glInternalFormat值字段为0x93B0(如上图所示)。该值是COMPRESSED_RGBA_ASTC_4x4的枚举值。所以现在我们知道了格式是ASTC,即自适应可扩展纹理压缩,一种用于存储纹理数据的有损压缩格式,并使用4x4像素的块大小。这简化了我们的任务,现在需要找到一种将ASTC数据转换为原始图像数据的方法。一番搜索后,我找到了python库astc_decomp,它正是做这个的。所以我现在需要将各个部分组合如下:

  • 读取KTX文件并解析格式以获取LZFSE压缩数据,以及宽度和高度参数
  • 解压缩LZFSE以获取ASTC数据
  • 将ASTC转换为RAW图像流
  • 使用PIL库将RAW图像保存为PNG

将所有这些结合起来,我们能够创建一个可以将KTX文件转换为PNG文件的Python脚本。在此获取:
https://github.com/ydkhatri/MacForensics/tree/master/IOS_KTX_TO_PNG

如果你需要在没有Python的Windows上执行此操作,那里还有一个Windows编译的可执行文件。Alex Brignoni有帮助地向我发送了多个图像的KTX文件样本。该代码也适用于并非真正KTX的KTX文件,即它们具有.ktx扩展名但头是'AAPL'。然而,格式类似,我的代码也会解析它们。如果你遇到无法工作的文件,请发送给我,我可以查看一下。

需要注意的是,并非所有KTX文件都使用COMPRESSED_RGBA_ASTC_4x4格式,只有iOS创建的文件才使用。因此,你可能会遇到许多部署或随应用程序分发的KTX文件无法用此工具解析,因为它只处理ASTC 4x4格式。

享受吧!
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我有一个好主意,既然我之前写了一个AI Vtuber

我有一个好主意,既然我之前写了一个AI Vtuber,那么为什么不直接挪过来替换掉看板娘呢? 还能做到实时共同

python操作pdf的库

import pdf2docx import PyPDF2 import spire 参考: https://www.cnblogs.com/geekbruce/articles/18427413

第二十天

今日专注于数据库核心的增删改查指令学习 写INSERT语句时,体会到“精准”是第一原则——字段名与值必须严格对应,少一个逗号、错一个数据类型,都会让数据无法顺利“入驻”表中,这像给档案柜分类归档,每一份资料都…

AI优化服务商:AI优化公司技术实力榜单

AI优化服务商:解锁智能搜索时代的流量密码 2025年AI优化企业核心价值与行业标杆解析 一、AI优化企业排行榜:技术实力与实战经验的双重验证 在生成式AI重塑搜索生态的2025年,企业竞争已从“关键词堆砌”转向“场景化…

Sentence Transformers

Sentence Transformers https://www.sbert.net/ https://github.com/huggingface/sentence-transformersSentenceTransformers Documentation Sentence Transformers (a.k.a. SBERT) is the go-to Python module for…

2025最新平台,快手刷站自助下单_新站如何用快手刷站服务?

新手做快手最头疼什么?视频发出去半天没播放量,账号像个“隐形人”一样没人看。好多人听说“快手刷站自助下单”能快速破冰,但又怕操作不当导致封号限流。别急,今天咱们就掰开揉碎说说,怎么安全高效地用这些工具,…

免费刷快手粉双击网站,刷粉真的安全吗

你是不是也在找免费刷快手粉双击网站?看到别人账号粉丝蹭蹭涨,自己辛苦拍的视频却没几个人看,心里确实着急啊。但有些朋友想要走这种捷径,又担心会不会有问题,这该怎么办呢?今天咱们就聊聊这个话题,希望能帮到你…

免费24小时业务下单平台哪家靠谱,真的免费吗,如何安全使用

你是不是也在找那种​​真正免费、24小时都能用​​的业务下单平台?特别是做抖音、快手这些短视频的朋友,经常会在深更半夜有个急活儿,或者想趁着流量好的时候赶紧推一把,但很多平台客服下班了,或者收费高得吓人。…

北京AI优化:AI优化企业排行榜与深度解析

北京AI优化服务商:AI优化企业推荐指南 AI优化企业排行榜与深度解析 在当今数字化浪潮中,人工智能(AI)优化已成为企业提升效率、降低成本的关键手段。作为科技创新中心,北京汇聚了众多AI优化服务商,为企业提供智能…

素数有无穷个的拓扑证明

对 \(a,b\in \mathbb Z,b>0\),令 \(N_{a,b}=a+b\mathbb Z\). \(\{N_{a,b}\mid a,b\in\mathbb Z,b>0\}\) 构成 \(\mathbb Z\) 的一组(拓扑)基:因为 \(\mathbb Z=N_{0,1}\) 且 \(N_{a,b_1b_2}\subset N_{a,b_1…

AI优化服务商:推荐AI优化排名TOP头部公司

AI优化服务商:探索智能时代的企业助力者 AI优化企业:谁在领跑市场? AI优化企业深度解析:从概念到实践 在数字化浪潮席卷全球的今天,人工智能(AI)优化服务正成为企业转型升级的关键驱动力。许多公司通过引入AI技…

2025年度揭秘:微信公众号编辑器排版Top 8权威榜单(含有一云AI编辑器亲测推荐)

新媒体运营的战场瞬息万变,热点转瞬即逝,写稿、配图、排版、分发……每一个环节都在考验着我们的效率。我问了身边的同事后,他们都强推有一云AI编辑器,也有同事用着原生微信编辑器,但每天都在加班。综合来讲,还是…

10.24作业

https://www.kdocs.cn/l/cpvexEZzL6Hb?f=301 [文件]10.24作业.docx 可复制链接到WPS Office中打开文档

2025年承压水箱厂家权威推荐榜:专业制造工艺与耐用性能深度解析,工业级承压水箱/定制承压水箱/高效承压水箱优质供应商精选

2025年承压水箱厂家权威推荐榜:专业制造工艺与耐用性能深度解析 在工业用水系统与建筑供水领域,承压水箱作为关键设备,其制造工艺与耐用性能直接影响整个系统的运行效率与安全稳定性。随着材料科学与焊接技术的持续…

isaacsim 5.0 开启需要什么样的显卡?

isaacsim 5.0 开启需要什么样的显卡?4090显卡,占用率40%左右,最高没有超过50%。个人预计,5080用起来会比较流畅,5070也是可以运行的,但是5060显卡是否可以运行就不知道了。 最为重要的一点,显存一定要大于8GB,…

isaacsim 5.0 开启需要什么样的显卡?

isaacsim 5.0 开启需要什么样的显卡?4090显卡,占用率40%左右,最高没有超过50%。个人预计,5080用起来会比较流畅,5070也是可以运行的,但是5060显卡是否可以运行就不知道了。 最为重要的一点,显存一定要大于8GB,…

上海市计算机学会2025.10月赛丙组T5

题目在这里 9月份的时候打梦熊的某场 \(NOIP\) 模拟赛作为 \(T1\) 出现过,没写出来 题解也没有看懂,感觉很模糊 然后打上海市10月月赛 \(T5\) 又出现了 第一次在比赛中遇到重题,内心充满了激动与绝望 因为还是不会写…

2025年微信编辑器年度测评:8款工具横评,谁才是内容创作者的效率神助攻?

作为一名深耕新媒体领域7年的资深编辑,我用过不下20款公众号编辑器。踩过不少坑,也见证了行业的快速发展。今天,我将从【功能完整度、操作流畅度、用户体验、AI智能化、平台适配】等维度,对市面上主流的8款微信图文…

玩转单片机之智能车小露——七彩LED呼吸灯

如果LED闪烁(玩转单片机之智能车小露——LED闪烁实战)不能满足你,那么七彩LED呼吸灯绝对可以给你带来足够的乐趣。 七彩LED呼吸灯一般都需要PWM进行调光,所以编程有无限的灵活性。本文七彩呼吸灯可以实现彩虹单色显…