Bill Reid's PaperMaker
Copyright Bill Reid, 2001
bill_reid@bigfoot.com
Home: http://billreid.cjb.net/
========================================================================================

Function Summary:

Program pastes a random or selected bitmap into another, then sets it as the desktop wallpaper.

Requirements:

The standard Visual Basic 6 runtime files, not included in this archive to minimize download time.  There are links on the app homepage if you have a lot of trouble finding them.

Description:

Around the time of the birth of my son, I was stymied trying to think of a neat way to display all his pictures in my wallpaper.  I began working them into little "artsy" designs, but with camera-happy dad and a little boy growing up way too fast, it was just too much work to stay up to date.  What I really wanted was a static wallpaper with a "frame" of sorts designed into it that his pictures could be rotated through.  So I pulled out the compiler...

BR PaperMaker allows you to specify a static wallpaper image, overlay a random inset picture and set this compilation as your current wallpaper.  It does this through very simple BitBlt calls, writing out a new composite image and makes the necessary API calls to set it as your wallpaper.  It isn't complex at all - although I did add a couple of command line options to allow for some further use beyond its initial design.


Getting Started:

Create a wallpaper-sized image for the canvas and decide on a section that the program will replace.  It may help you to paint that section a solid color to differentiate it.  Using your graphics program or whatever tools you wish, note the X,Y coordinates of the top left corner of this section and the size of the section in pixels (width, height).

Create as many inset pictures as you wish.  Just size them to the width/height you noticed earlier and keept them in a directory to themselves.

Run BRPaperMaker from the program group to get the standard "first time user" message.  Now run it again with the /C argument - ie., "BRPaperMaker /C" (you will need to run the app from the DOS/Command prompt, Run dialog or use a seperate utility.) Fill in the fields as follows:

Output filename:  Full path for the output file      (ex. c:\Windows\BRPaper.bmp)
Canvas filename:  Full path to your "canvas" image   
Dir with Insets:  Full path to the folder full of insets
X: Left of area to replace in pixels
Y: Top of area to replace in pixels
Height: Height of inset picture in pixels
Width: Width of inset picture in pixels

Upon the next run, a random inset picture will be chosen, burned into the canvas image, output to your specified filename and set as wallpaper.  Your original pictures don't get altered in any way.


<LAZY>

If you don't want to go to all this trouble to see how it works, just point the dialog at some random images/image directory and give it some sensible values.  It won't be pretty, but you'll see how it works.

</LAZY>

For my own use, I created a nice desktop background with a 3D perspective frame in the corner.  The app stuffs this frame with new pics of my son every bootup.

Command Line Options:

You can use the /C switch to configure the app as noted earlier.  You can also give the app parameters on the command line to force it to use a particular picture.  The syntax for this is:

	BRPaperMaker CanvasPicture, RandomPicture, X, Y, Width, Height, OutputBMP

Note that this process ignores the random aspect of things - you're specifying a particular file you want converted.  Good for irregular use sort of things.


Possible Uses:

- Stick BRPaperMaker in the Startup folder and get a new wallpaper per reboot
- Use a program timer/scheduler of some sort to swap pictures every so many minutes
- Drop a shortcut to BRPaperMaker somewhere and click it when you want an updated wallpaper
- Use command line option in a batch file to convert a bunch of pics.  Or something...

Known bugs:

-Poor documentation.  Sorry.  I just whipped this up for my own use and haven't thought it through completely.  It's working well for me, though.

-Very little error checking.  Enter a bad path or something and it's likely to crash with a runtime error.  Don't try to crash it - you probably will.

Planned upgrades:

-Waiting for your suggestions and my conscience!

