如何从ipa包中获取png图片

2024-05-30 15:18
文章标签 图片 获取 ipa png 包中

本文主要是介绍如何从ipa包中获取png图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一个ios的应用,我们把它从iTunes里面拖出来是一个ipa包,其实就是一个压缩包,可以手动将后缀名改为.zip, 解压出来就可以看到应用里面的资源文件,图片等,但是直接打开图片会发现是空白一片,不能预览。这是因为xcode在编译打包的时候会对资源文件中的png图片进行一些优化,所以解压出来的不能直接用。
xcode对图片进行优化是使用一个工具pngcrush,在安装过xcode的mac机器上都已经存在。

说一下改做法的意义啊,appStore上优秀的应用设计无数,通过这种方法就相当于拥有了一个庞大的png图库,喜欢那个应用的图片就把它切图拿出来…
下面放出方法:
1、创建一个空白文件,我这里命名pngutil, 将下面的脚本代码拷进去,保存:

帮助
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/ksh
typeset current_path=$( pwd )
typeset output_path="${current_path} /output "
typeset png_file_list=<code> find ${current_path} -name &quot;*.png&quot;< /code >
function pngconvert
{
     mkdir -p ${output_path}
     for each in ${png_file_list}
     do
         typeset png_name=$( basename ${each})
             /Developer/Platforms/iPhoneOS .platform /Developer/usr/bin/pngcrush -revert-iphone-optimizations ${each} ${output_path}/${png_name}
     done
}
function clearsource
{
     typeset temp_file=<code> find ${current_path} - type d -depth 1< /code >
     for each in ${temp_file}
     do
         if [ ${each} != ${output_path} ]; then
             rm -rf $each
         fi
     done
     mv ${output_path}/* ${current_path}
     rm -rf ${output_path}
}
pngconvert
if [ $? - eq 0 ]; then
     find ${current_path} -name &quot;*.gif&quot; - exec mv {} ${current_path} \;
     find ${current_path} -name &quot;*.jpeg&quot; - exec mv {} ${current_path} \;
     find ${current_path} -name &quot;*.jpg&quot; - exec mv {} ${current_path} \;
     clearsource
fi

2、注意,脚本中的/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush路径就是你本机的pngcrush工具的路径,需要将此处改为你本机的路径,如果你是lion下的xcode4.2.1默认安装的,路径应该就是上面这个。

3、切换到root权限下,将刚创建的pngutil文件拷贝到/usr/bin/下, 然后改文件权限:
chmod 755 /usr/bin/pngutil

4、做完以上步骤应该就可以啦,可以测试下,先cd到ipa包的解压目录下面, 然后直接输入命令pngutil,执行完毕就可以看到图片啦。

本文转自:http://www.cnbluebox.com/?p=94

这篇关于如何从ipa包中获取png图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1016428

相关文章

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

如何利用Java获取当天的开始和结束时间

《如何利用Java获取当天的开始和结束时间》:本文主要介绍如何使用Java8的LocalDate和LocalDateTime类获取指定日期的开始和结束时间,展示了如何通过这些类进行日期和时间的处... 目录前言1. Java日期时间API概述2. 获取当天的开始和结束时间代码解析运行结果3. 总结前言在J

Python利用PIL进行图片压缩

《Python利用PIL进行图片压缩》有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所以本文为大家介绍了Python中图片压缩的方法,需要的可以参考下... 有时在发送一些文件如PPT、Word时,由于文件中的图片太大,导致文件也太大,无法发送,所有可以对文件中的图

java获取图片的大小、宽度、高度方式

《java获取图片的大小、宽度、高度方式》文章介绍了如何将File对象转换为MultipartFile对象的过程,并分享了个人经验,希望能为读者提供参考... 目China编程录Java获取图片的大小、宽度、高度File对象(该对象里面是图片)MultipartFile对象(该对象里面是图片)总结java获取图片

Java通过反射获取方法参数名的方式小结

《Java通过反射获取方法参数名的方式小结》这篇文章主要为大家详细介绍了Java如何通过反射获取方法参数名的方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、前言2、解决方式方式2.1: 添加编译参数配置 -parameters方式2.2: 使用Spring的内部工具类 -

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

Java实战之自助进行多张图片合成拼接

《Java实战之自助进行多张图片合成拼接》在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下... 目录前言一、图片合成需求描述二、图片合成设计与实现1、编程语言2、基础数据准备3、图片合成流程4、图片合成实现三、总结前

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ

使用Python实现图片和base64转换工具

《使用Python实现图片和base64转换工具》这篇文章主要为大家详细介绍了如何使用Python中的base64模块编写一个工具,可以实现图片和Base64编码之间的转换,感兴趣的小伙伴可以了解下... 简介使用python的base64模块来实现图片和Base64编码之间的转换。可以将图片转换为Bas