## Thread: iOS .ARTWORK file Extractor (with Tutorial)

is a discussion within the

### Skinning / Themes Discussion

forums, a part of the

#### Design and Media For the iPhone / iPod Touch

section;
##### Anyone leaked iOS 6 theme yet, I really need the UIButtonBars from iOS 6 and the new UI in general.
...
1. Anyone leaked iOS 6 theme yet, I really need the UIButtonBars from iOS 6 and the new UI in general.

2. Well if you're on the iOS 6 Beta, its definitely not gonna work. It's BETA right now, so things keep changing so the extractor wont work with iOS 6 until after final release. If your on 5.1.1, then update your iOS artwork extractor: CLICK ME!

3. ## The Following User Says Thank You to CrAcKzZZ For This Useful Post:

Alfroggy (09-22-2012)

4. I'm new to all this so bare with me. Can someone help me with the error message I'm getting. I've read through the tutorial a few times and believe i have everything right. Here is what I put into CMD Prompt and the error I keep getting:

python iOS-artwork.pyCPython27>python iOS-artwork.py export -a C[email protected] -d Cpngs
Traceback (most recent call last):
File "iOS-artwork.py", line 37, in <module>
from artwork.artwork_file import ArtworkBinaryFile, WritableArtworkBinaryFil
e
ImportError: No module named artwork.artwork_file

5. Originally Posted by MilkyTech
Code:
code tags
The tutorial is really straight forward. If you follow it word for word you should be fine. I was able to do it and I am definitely a noob with command line.
if you install Python 2.7.2, by default it will be on the root of your c drive. make sure it is the 32 bit version, the first one on the python download page: Python 2.7.2 Windows Installer (Windows binary -- does not include source). then install the PIL Python Imaging Library 1.1.7 for Python 2.7 (Windows only). Then dowload DavePecks iPhone tidbits and copy the contents of the iOS-artwork folder to the python installation folder. Then create a folder for your extracted artwork (i put mine inside the python27 folder and called it "extract@2x" since the file you want to extract is [email protected]k. the other .artwork files are kinda useless). then I like to place the original .artwork file to be extracted inside a folder called "orig" inside the Python27 folder also. Then you are ready to go. open the Start menu in windows and then Run. if you don't see Run, then you need to go to the start menu properties and customize and put a check next to Run. when you get the Run window open, type cmd to bring up the windows command prompt window. then start your command line instructions. get into the python directory
Code:
chdir c:\Python27
. If you set up your folders like I just described, your next command should look like this (make sure all of your spaces are in the proper place):

Code:
c:\Python27>python iOS-artwork.py export -a \Python27\orig\[email protected]
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
-d \Python27\extract@2x
notice the spaces! if you did all of that properly, your extracted images should now be inside the extract@2x folder. edit as necessary, then when you are ready to recompile, your next command should look like this:

Code:
c:\Python27>python iOS-artwork.py create -a \Python27\orig\[email protected]
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})();
/* ]]> */
-d \Python27\extract@2x\ -c Shared@2x_mod1.artwork
This will compile and place the new Shared@2x_mod1.artwork file inside the python installation folder. You will obviously need to rename it to [email protected]k after you transfer it back to the UIKit.framework folder on your phone.

Sorry for basically regurgitating most of crackzzz's tutorial, but sometimes you just need to hammer the point home!
Hey folow this exactly even rename how it is listed then all you have to do is copy the codes: hopw this helps, but this really helped me with error that I was getting

6. ## The Following 2 Users Say Thank You to jayjOka For This Useful Post:

Alfroggy (09-22-2012), audioteck818 (02-16-2013)

7. Hi(:

I followed the instructions exactly but got the same error as Newbee123. I then went to cut the contents in the iOS-artwork, and pasted it directly into the Python27. And this time they prompted an error of a PLL image. What am i doing wrong here? Please help! Thanks!

I redid the steps. At Step 4 - Windows & Mac: enter the following command but read the detail below first.

Code:
python iOS-artwork.py export -a \path\to\artwork_file.artwork -d \path\to\export_directory\

I encountered this. I extracted ONLY the iOS-artwork folder and placed it in the CPython27 directory as mentioned in Step 1.

For a clearer headstart, this are the steps I did. I downloaded and installed Python 2.7.x, Python Imaging Library 1.17 (both PIL-1.1.7-py3-source.zip and PIL-1.1.7.win32-py2.7.*exe)

and downloaded and extracted the iOS artwork extractor, with the iOS-artwork folder extracted to my CPython27 directory.

I did Steps 2-4 and encountered the error as shown below.

8. ## The Following User Says Thank You to AlleneVespera For This Useful Post:

Alfroggy (09-22-2012)

9. Hi all,
I got an error when trying to extract ios 5.1.1( iPhone 3gs) file.

In the output folder, there is nothing!
How can fix this ?

10. Originally Posted by RonLogsdon
I'm new to all this so bare with me. Can someone help me with the error message I'm getting. I've read through the tutorial a few times and believe i have everything right. Here is what I put into CMD Prompt and the error I keep getting:

python iOS-artwork.pyC:\Python27>python iOS-artwork.py export -a C:\[email protected] -d C:\pngs
Traceback (most recent call last):
File "iOS-artwork.py", line 37, in <module>
from artwork.artwork_file import ArtworkBinaryFile, WritableArtworkBinaryFil
e
ImportError: No module named artwork.artwork_file
First make sure iOS-artwork.py is in C:\Python27, it shouldnt be in its own separate folder.

Then in CMD Prompt type:

chdir C:\Python27
python iOS-artwork.py export -a C:\[email protected] -d C:\pngs

If it gives another error, make sure you have the correct PIL version installed, so if you have a 32 bit Python 2.7.3 then you need a 32 bit version PIL.

Originally Posted by jayjOka
Hey folow this exactly even rename how it is listed then all you have to do is copy the codes: hopw this helps, but this really helped me with error that I was getting
So are you saying follow my tutorial exactly, or something else?

Originally Posted by AlleneVespera
Hi(:

I followed the instructions exactly but got the same error as Newbee123. I then went to cut the contents in the iOS-artwork, and pasted it directly into the Python27. And this time they prompted an error of a PLL image. What am i doing wrong here? Please help! Thanks! :D

Attachment 608747

I redid the steps. At Step 4 - Windows & Mac: enter the following command but read the detail below first.

Code:
python iOS-artwork.py export -a \path\to\artwork_file.artwork -d \path\to\export_directory\

I encountered this. I extracted ONLY the iOS-artwork folder and placed it in the C:\Python27 directory as mentioned in Step 1.

For a clearer headstart, this are the steps I did. I downloaded and installed Python 2.7.x, Python Imaging Library 1.17 (both PIL-1.1.7-py3-source.zip and PIL-1.1.7.win32-py2.7.*exe)
Attachment 608751

and downloaded and extracted the iOS artwork extractor, with the iOS-artwork folder extracted to my C:\Python27 directory.
Attachment 608753

I did Steps 2-4 and encountered the error as shown below.
Attachment 608750
First make sure iOS-artwork.py is in C:\Python27, it shouldnt be in its own separate folder.

Then in CMD Prompt type:

chdir C:\Python27

If it gives another error, make sure you have the correct PIL version installed, so if you have a 32 bit Python 2.7.3 then you need a 32 bit version PIL.

Originally Posted by heac1021
Hi all,
I got an error when trying to extract ios 5.1.1( iPhone 3gs) file.
Attachment 609389
In the output folder, there is nothing!
How can fix this ?
You need to make sure that every single png that needs to be in the .artwork file is in the import directory (C:\xuat) if even 1 is missing then it will fail. You can't just put your modified png files in C:\xuat.

and after -c if should say Shared.artwork not \Shared.artwork. When the process is complete the new .artwork file will be in C:\Python27

11. ## The Following User Says Thank You to CrAcKzZZ For This Useful Post:

Alfroggy (09-22-2012)

12. You cannot even fathom how pissed I am right now. I've spent the past few hours desperately trying to extract AssistantMic.artwork, WITH NO SUCCESS!!! How the heck did you people extract the thing??? I followed the tutorial to a T and I keep getting the not supported error. There is no AssistantMic json file in the supported artworks folder. So is that causing the error?

13. Do you want it? Here you are!

http://db.tt/r2p82KBE

14. ## The Following User Says Thank You to broodwar For This Useful Post:

Alfroggy (09-22-2012)

15. I already have those files, but they're useless to me unless I repack them back into an artwork file. I've gone through this entire thread and haven't found an answer to that. How did everyone manage to extract those pngs?

16. UPDATE:

Dave Peck moved the iOS Artwork Extractor to its own repo, here:

https://github.com/davepeck/iOS-artwork/zipball/master

17. ## The Following 2 Users Say Thank You to CrAcKzZZ For This Useful Post:

Alfroggy (09-22-2012), Jahooba (09-22-2012)

18. UPDATE:

iOS 6 SUPPORT IS HERE! Download the New iOS Artwork Extractor here:

CLICK ME!

19. ## The Following 2 Users Say Thank You to CrAcKzZZ For This Useful Post:

Alfroggy (09-22-2012), Jahooba (09-22-2012)

20. Any luck getting the iPhone 5 artwork images for ios 6?

21. Okay. I was able to unpack the artwork file into folders as mentioned. After I put in the images I wanted, I put in this command:

python iOS-artwork.py create -a \Python27\orig\[email protected] -d \Python27\extract@2x\ -c Shared@2x_mod1.artwork

These are my folder names, the images are in extract@2x and I am trying to create the Shared@2x_mod1 file.

But i keep getting this:

Creating a new file named cPython27\Shared@2x_mod1.artwork by importing 1176 i
mages...
(Using [email protected]k version 5.1.0 as a template.)
imported [email protected]
imported [email protected]
imported [email protected]
Traceback (most recent call last):
File "iOS-artwork.py", line 197, in <module>
main(sys.argv)
File "iOS-artwork.py", line 194, in main
action_create(abs_artwork_file_name, abs_directory, abs_create_file_name)
File "iOS-artwork.py", line 121, in action_create
create_file.write_pil_image_at(artwork_image.image _offset, artwork_image.wid
th, artwork_image.height, artwork_image.is_greyscale, pil_image)
File "cPython27\artwork\artwork_file.py", line 201, in write_pil_image_at
File "cPython27\lib\site-packages\PIL\ImageFile.py", line 215, in load
raise_ioerror(e)
File "cPython27\lib\site-packages\PIL\ImageFile.py", line 52, in raise_ioerr
or
raise IOError(message + " when reading image file")
IOError: broken data stream when reading image file

A little assistance please? ios 5.1.1 iphone 4.

22. I successfully unpacked and repacked the ios6.0 artwork but had a few images come out a bit funky. Specifically the black UIButtonBars and the UIActivityShine to name a few. The have black lines across them Any body else have that problem? I'm on the iphone4 ios6 cdma version

23. Originally Posted by itsTrentB
Okay. I was able to unpack the artwork file into folders as mentioned. After I put in the images I wanted, I put in this command:

python iOS-artwork.py create -a \Python27\orig\[email protected] -d \Python27\extract@2x\ -c Shared@2x_mod1.artwork

These are my folder names, the images are in extract@2x and I am trying to create the Shared@2x_mod1 file.

But i keep getting this:

Creating a new file named cPython27\Shared@2x_mod1.artwork by importing 1176 i
mages...
(Using [email protected]k version 5.1.0 as a template.)
imported [email protected]
imported [email protected]
imported [email protected]
Traceback (most recent call last):
File "iOS-artwork.py", line 197, in <module>
main(sys.argv)
File "iOS-artwork.py", line 194, in main
action_create(abs_artwork_file_name, abs_directory, abs_create_file_name)
File "iOS-artwork.py", line 121, in action_create
create_file.write_pil_image_at(artwork_image.image _offset, artwork_image.wid
th, artwork_image.height, artwork_image.is_greyscale, pil_image)
File "cPython27\artwork\artwork_file.py", line 201, in write_pil_image_at
File "cPython27\lib\site-packages\PIL\ImageFile.py", line 215, in load
raise_ioerror(e)
File "cPython27\lib\site-packages\PIL\ImageFile.py", line 52, in raise_ioerr
or
raise IOError(message + " when reading image file")
IOError: broken data stream when reading image file

A little assistance please? ios 5.1.1 iphone 4.
I think thats something to do with not editing the images properly or, you didn't put all the required uiimages in that import folder. when you originally extract the original .artwork file, theres an X amount of uiimages in it, when you recompile the .artwork file it still has to have X amount of files in it, not anymore not any less. Hope i helped

Originally Posted by DannyZ83
I successfully unpacked and repacked the ios6.0 artwork but had a few images come out a bit funky. Specifically the black UIButtonBars and the UIActivityShine to name a few. The have black lines across them Any body else have that problem? I'm on the iphone4 ios6 cdma version
Check to see if your images were edited properly, i personally havent had time to play around with iOS 6 artwork files on my devices.

24. Originally Posted by CrAcKzZZ
I think thats something to do with not editing the images properly or, you didn't put all the required uiimages in that import folder. when you originally extract the original .artwork file, theres an X amount of uiimages in it, when you recompile the .artwork file it still has to have X amount of files in it, not anymore not any less. Hope i helped
That was exactly the problem. But even after getting the amount of artwork files matched with the original and making sure the sizes matched, i had difficulty adjusting the image sizes (ex 26 x 40 when the original was 20 x 40) without messing up the file size. If that makes sense. So pretty much i was replacing what I wanted with the original artwork file & it sucked.

Thank you!

25. Yea it can be a pain, its fun playing around with this stuff but as far as customization goes Winterboard is better for sure. .artwork files just modify the actual thing so even apps like Cydia get themed.