有没有办法从我下载的应用程序中提取图片?
在Android上我可以做到这一点,但iPad呢?
是的。在“音乐/iTunes/移动应用”文件夹中找到app的.ipa文件。复制一份并将其重新命名为.zip文件。解压缩该文件。在Payload文件夹中,右键点击.app文件并选择“显示包内容”。现在您可以访问所有应用程序的资源。
PNG文件将被编码为iPhone格式,需要转换才能在您的Mac/PC上查看。有几个实用工具可供选择。
我使用了atPeek来自动完成整个过程,但这不是一个免费的应用程序(我想它价值5美元):http://www.atpurpose.com/atPeek/
iOS SDK 3.2(及以上版本)开始,您可以使用pngcrush
取消iOS PNG优化。
使用以下命令:
$ /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush -revert-iphone-optimizations "~/Path/To/The/Apps.app/Image.png" "~/Path/To/Place/The/Reverted/Image.png"
完整信息请查看http://developer.apple.com/library/ios/#qa/qa1681/_index.html
iOS SDK可免费下载:http://developer.apple.com/devcenter/ios/index.action
您可以从http://pmt.sourceforge.net/pngcrush/下载pngcrush
而无需下载iOS SDK。
嗯,有一个由Cédric Luthi创建的很棒的Github项目可以实现这个功能:
https://github.com/0xced/UIKit-Artwork-Extractor
它可以浏览和提取iOS内部艺术作品以及iTunes中任何ipa文件的艺术作品。
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush
提取ipa文件的内容(根据@TomSwift的回答)
我编写了这个PHP命令行脚本,它会转换/解压目录中的所有图像。这是一个命令行脚本,仅在OSX上进行测试。
参数:
--indir(包含PNG的目录)
--outdir(转换后的PNG将被放置的目录)
--pngcrushpath [可选](pngcrush路径,如果未指定,则默认为标准路径)
示例用法:
php uncrush.php --indir /MyIPAs/MyApp.app/ --outdir /MyIPAs/Converted/
脚本源代码:
<?php
$args = getopt('', array(
'indir:',
'outdir:',
'pngcrushpath::'
));
$inDir = @rtrim($args['indir'], '/');
$outDir = @rtrim($args['outdir'], '/');
$pngCrushPath = isset($args['pngcrushpath']) ? $args['pngcrushpath'] : '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush';
if(!is_dir($inDir)){
error('INPUT DIR IS NOT VALID - DIRECTORY NOT FOUND ' . $inDir);
}
if(!is_dir($outDir) && !mkdir($outDir)){
error('OUTPUT DIR IS NOT VALID - DIRECTORY WAS NOT FOUND AND COULD NOT BE CREATED ' . $outDir);
}
if(!is_file($pngCrushPath)){
error('PNGCRUSH BINARY NOT FOUND');
}
$pngs = glob($inDir . '/*.png');
foreach($pngs as $png){
msg('CONVERTING - ' . $png);
convert($png, $outDir . '/' . basename($png));
}
msg('DONE');
exit;
function error($str){
$f = fopen('php://stderr', 'w');
fwrite($f, $str . "\n");
fclose($f);
exit;
}
function msg($str){
$f = fopen('php://stdout', 'w');
fwrite($f, $str . "\n");
fclose($f);
}
function convert($inPng, $outPng){
global $pngCrushPath;
exec($pngCrushPath . ' -revert-iphone-optimizations -q ' . $inPng . ' ' . $outPng);
}
?>
assets.car
。这个Mac应用程序对我很有帮助。 - shoe