ipad - 从应用程序中提取图像?

时间:2011-01-06 03:12:26

标签: ipad extract

有没有办法从我下载的应用中提取图片?

我可以在Android上执行此操作,但iPad?

7 个答案:

答案 0 :(得分:15)

是。在“音乐/ iTunes /移动应用程序”文件夹中找到应用程序.ipa文件。在某处复制并将其重命名为.zip文件。解压缩文件。在Payload文件夹中,右键单击.app文件并选择“显示包内容”。您现在可以访问该应用的所有资源。

PNG文件将为iPhone编码,需要转换为可在Mac / PC上查看。有几个实用程序。

我已经使用atPeek来自动完成整个过程,但它不是免费的应用程序(我认为它是5美元):http://www.atpurpose.com/atPeek/

答案 1 :(得分:6)

从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/

下载iOS SDK即可下载pngcrush

答案 2 :(得分:3)

嗯,CédricLuthi有一个很棒的github项目来做这件事:

https://github.com/0xced/UIKit-Artwork-Extractor

它可以浏览和提取iOS内部艺术作品以及iTunes中任何ipa文件的艺术作品。

答案 3 :(得分:2)

在最新的xcode中,路径是:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/pngcrush

...所以请确保编辑pngcrush中的路径。

另外,(对于新手),如果你得到permission denied,因为该文件还不是可执行文件,请执行chmod +x [filename]

答案 4 :(得分:1)

  • 提取ipa文件的内容(根据@ TomSwift的回答)

  • 我编写了这个PHP cmd行脚本,它将转换/解压缩目录中的所有图像。它是一个cmd行脚本,仅在OSX上进行测试。

<强>参数:

  

- indir (包含PNG的目录)

     

- outdir (将放置已转换PNG的目录)

     

- pngcrushpath [可选](pngcrush的路径,如果没有指定,则默认为标准)

使用示例:

  

php uncrush.php - indir /MyIPAs/MyApp.app/ - outdir   / MyIPAs /转换/

脚本来源:

<?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);
}

?>

我今天写了这个脚本供我自己使用,我希望它对其他人有用。随意修改并转发到其他地方,但请在SO上链接回这个答案。

答案 5 :(得分:0)

这里有一篇文章如何在shell脚本中使用pngcrush,循环并转换所有图片

希望这会有所帮助。

答案 6 :(得分:0)

我发现从iPad / iPhone应用程序中直接从设备访问图像的最佳工具是iFunBox 在http://www.i-funbox.com/

获取