{"id":2367,"date":"2013-03-15T19:00:00","date_gmt":"2013-03-15T19:00:00","guid":{"rendered":"http:\/\/johnjohnston.info\/blog\/?e=2367"},"modified":"2025-01-08T18:55:46","modified_gmt":"2025-01-08T18:55:46","slug":"ios-icon-extraction","status":"publish","type":"post","link":"https:\/\/johnjohnston.info\/blog\/ios-icon-extraction\/","title":{"rendered":"iOS Icon Extraction"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/johnjohnston.info\/blog\/images\/2013-03\/2013-03-12_iosicons.jpg\" alt=\"Iosicons\" width=\"500\" height=\"508\" \/><\/p>\n<p><strong>Update: 8 Jan 2025. I&#8217;ve had a query or two about his post recently and a comment today. I doubt very much if anything in this post still stands.<\/strong><\/p>\n<p>The other day a colleague and I were trying to remember how to get the icon art for iOS apps to help write notes. We though we remembered a way to get them out from examining the package. Later I was reading the ADE list, where there was a bit of bemoaning that you can no longer copy the art from iTunes. Someone mentioned that the art was now is a file <em>iTunesArtwork<\/em> inside the .ipa files in the iTunes folder, the .ipa file being zip files.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/johnjohnston.info\/blog\/images\/2013-03\/2013-03-12_icon_extraction_manual.jpg\" alt=\"Icon Extraction Manual\" width=\"500\" height=\"432\" \/><\/p>\n<p>This means you can get the art work by, changing the extension on an ios app file to .zip, expanding the archive, adding a .png extension to the <em>iTunesArtwork<\/em> file. You end up with the artwork png file.<\/p>\n<h3>Automating<\/h3>\n<p>This seems like a fairly long road for a short cut. A wee bit of though lead me to try a few shell scripts. Basically you can use the unzip command to extract the iTunesArtwork file with a png extension and you get a png file of the artwork.<\/p>\n<p>To make this a little easier I wrapped up the shell script in an AppleScript. Drag a bunch of .ipa files onto the droplet and it will create a folder on your desktop and extract the art work as png files. Double click the droplet and it will prompt you for a file and do the same. The files are named the same as the .ipa files except I replace all non alphanumerical characters with an underscore. I&#8217;ve put the<del> <a href=\"https:\/\/dl.dropbox.com\/u\/81715\/iOSAppIcon.app.zip\">script in my dropbox<\/a> <\/del>in case anyone would find it useful, and uploaded the text so you can <a href=\"https:\/\/johnjohnston.info\/\/oddsandends\/ios_App_Icon_extract.html\">View the Script<\/a>.<\/p>\n<h3>BTW: Rounded Corners<\/h3>\n<p>So the artwork extracted does not have the rounded corners:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/johnjohnston.info\/blog\/images\/2013-03\/2013-03-15_i_movie_140ipa.png\" alt=\"I Movie 140.ipa\" width=\"240\" height=\"240\" \/><\/p>\n<p>You can change the way that looks on the web with a bit of css:<br \/>\n<img loading=\"lazy\" decoding=\"async\" style=\"-moz-border-radius: 20%; -webkit-border-radius: 20%; border-radius: 20%;\" src=\"https:\/\/johnjohnston.info\/blog\/images\/2013-03\/2013-03-15_i_movie_140ipa.png\" alt=\"I Movie 140.ipa\" width=\"240\" height=\"240\" \/><\/p>\n<p><code>style=\"-moz-border-radius: 20%;-webkit-border-radius: 20%;border-radius: 20%;\"<\/code><\/p>\n<p>This might help other folk documenting iOS stuff. I&#8217;ve now got a folder of &gt;600 icons ready to go.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update: 8 Jan 2025. I&#8217;ve had a query or two about his post recently and a comment today. I doubt very much if anything in this post still stands. The other day a colleague and I were trying to remember how to get the icon art for iOS apps to help write notes. We though [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"mf2_syndication":[],"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"webmentions_disabled_pings":false,"webmentions_disabled":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[6],"tags":[93,94,45],"post_format":[],"class_list":{"0":"post-2367","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-wwwd","7":"tag-applescript","8":"tag-commandline","9":"tag-ios","10":"kind-article","12":"h-entry","13":"hentry"},"better_featured_image":null,"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p57zFQ-Cb","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"kind":false,"_links":{"self":[{"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/posts\/2367","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/comments?post=2367"}],"version-history":[{"count":4,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/posts\/2367\/revisions"}],"predecessor-version":[{"id":20147,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/posts\/2367\/revisions\/20147"}],"wp:attachment":[{"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/media?parent=2367"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/categories?post=2367"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/tags?post=2367"},{"taxonomy":"post_format","embeddable":true,"href":"https:\/\/johnjohnston.info\/blog\/wp-json\/wp\/v2\/post_format?post=2367"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}