First I'm going to back up for a second. If you don't change wallpaper often, the easiest way to change it in a theme is to simply replace the image that comes with the theme with one of your own. All you have to do is make sure it has the exact same name as the old one and the theme will use whatever you put in there. But if you want to be able to swap them using the usual way of switching wallpaper, read on:
Okay, so here is a quick "for instance"...this example uses a lockscreen theme I used to use but the basic idea should be the same for whatever you're using--we're going to be editing the html file for the theme so that it knows where to look for your wallpaper. We need to change a line because if you're using the jpegifier program, the image it saves has a different name and location than what is used in the theme.
First you need to open the theme folder and find the .html file that controls your theme. (In this case it's just called LockBackground.html)
Hunt around for the bit of code that relates to your wallpaper. Here is a snippet from mine; note the line in bold; this is the lockscreen background that came with the theme:
Code:
// -->
</script>
</head>
<body onload="updateClock(); setInterval('updateClock()', 1000 )">
<!-- Get User's Background -->
<div id="background">
<img src="[B]LockBackground.png[/B]" width="320" height="480">
</div>
<!-- Clock Here -->
<div id="clock">
</div>
<!-- Everything Else -->
<div id="calendar">
<!-- Date of the month in numbers -->
<div id="date">
<script type="text/javascript">
To edit this, I open it in WordPad or another basic text editor. When you find the line that relates to your LockBackground (or HomeBackground) you need to replace the image destination so that it points to the image saved by WallpaperJPEGifier. Note the bolded line below, which is where the tweak saves the new image:
Code:
// -->
</script>
</head>
<body onload="updateClock(); setInterval('updateClock()', 1000 )">
<!-- Get User's Background -->
<div id="background">
<img src="[B]/var/mobile/Library/SpringBoard/Converted-LockBackground.jpg[/B]" width="320" height="480">
</div>
<!-- Clock Here -->
<div id="clock">
</div>
<!-- Everything Else -->
<div id="calendar">
<!-- Date of the month in numbers -->
<div id="date">
<script type="text/javascript">
Once edited, save the new html file in place of the old one. Then put it on your phone using one of the methods described before (iFunbox, etc.). Respring and you should be good to go.
Note: This uses a lock screen theme as an example, so the new image location is:
/var/mobile/Library/SpringBoard/Converted-LockBackground.jpg
but if you also theme your phone once it's unlocked, you'll probably need to replace two images, for Lock Screen Wallpaper and Home Screen Wallpaper. The home screen version will now be:
/var/mobile/Library/SpringBoard/Converted-HomeBackground.jpg
It's also possible, depending on the theme, that you may simply be able to delete the wallpaper that is included with a theme, and iOS might just use the regular wallpaper then. This tweak is really mostly used for html themes which are often seen at the lockscreen. If you can't find a HomeBackground image, it's probably because you aren't using an html based home or lock screen. (I don't use themes except at my lockscreen, so can't confirm the details on iOS5.)
A lot to take in; hope I wasn't too confusing about it all. Feel free to ask questions! If you have a theme in mind we might be able to get it going for you with a little work.