What is Desktop Stitcher?
Desktop Stitcher is a command-line tool for multi-monitor displays on Windows operating systems. It works by making a large composite image which, when viewed across multiple monitors, appear as a different image on each screen. The source images are randomly chosen from a specified directory.
Before you begin, ensure you have the .NET 3.5 Framework. It is available from here.
Download Desktop Stitcher from here.
Extract the contents to wherever you’d like Desktop Stitcher to run from.
(Note that it’s best to choose a location on your hard drive, as default .NET security policy may prevent Desktop Stitcher from running off a network or removable drive.)
You’re done! Continue on to the next section to start using it.
Desktop Stitcher creates a large canvas, and draws several pictures onto this canvas. If you set it up correctly, the different images will appear on different monitors.
Running Desktop Stitcher should produce instructions similar to this:
Combines random images from a directory to create a larger, composite image. Version 1.0.3870.305 (07 August 2010) http://deck16.net/DesktopStitcher/ DESKTOPSTITCHER source destination width height [/Z | /L] [/C | /R] [/B=r,g,b] [/V] rect1, rect2 ... source A directory from which to randomly select source images. destination A filename for the composite image bitmap. width The width of the stitched image. height The height of the stitched image. /Z Use zooming for mismatched aspect ratios (default). /L Use letterboxing for mismatched aspect ratios. /C Always centre images (default). /R Randomly choose image margins. /B=r,g,b Select background colour (r,g,b = 0-255). Default black. /V Give verbose error messages with full stack trace. rectn Rectangle in which to place an image in the format x,y,width,height Note that the origin (0,0) is at the top-left.
Suppose you have two screens. Your main screen runs with a resolution of 1920 x 1080. However, your second screen is not quite so impressive, with a mere resolution of 640 x 480. Let’s say the main screen is on the left and the secondary screen is on the right.
You want something like the image above. This final image has a width of 2560 (1920 + 640) and a height of 1080 (the greater height of the two monitors). That’s the height and width arguments figured out.
Next, you need to determine the rectangle for each screen’s image to be drawn.
The first rectangle in the sample above has the picture of the planes. This is what’s shown on your left screen. The image starts at the origin (top-left is the origin for computer graphics, we’re not doing Cartesian coordinates here), which means x is 0 and y is 0. The width and height are that of the screen, which is 1920 and 1080 respectively.
The second rectangle in the sample has a picture of a swordswoman. This is what’s shown on your right screen. The image starts at the top, so y is 0, but it has been moved along to the right by the width of the primary screen, so x is 1920. We know the width and height are that of the screen, 640 and 480 respectively.
We now know enough to use Desktop Stitcher. We would run it like so:
DesktopStitcher C:\MyPictures C:\SomeDirectory\Composite.Bmp 2560 1080 0,0,1920,1080 1920,0,640,480
What a pain to use. Can’t it be automated?
Being a command-line tool, you can put it in a batch file or shortcut with all the arguments filled out. Or you could add a shortcut to it to the Startup folder to automatically run on start-up. Or you could add it to Scheduled Tasks to run at certain intervals during the day.
What’s “Zooming”? What’s “Letterboxing”?
Your image may not be the same shape as the rectangle you tell it to occupy. Rather than stretch the image and make it look ugly, Desktop Stitcher applies either zooming (also known as “pan and scan”) or letterboxing to keep the image looking normal.
What’s the difference between “Centre” and “Random”?
If you’re going to zoom or letterbox (see above), then you’d usually add or take away even amounts of an image either side. That’s what “centre” does. “Random”, on the other hand, randomly preferences one side to another.
What kinds of pictures does Desktop Stitcher support?
I’m not 100% sure. Probably bitmaps, jpegs, pngs and gifs. Anything else that happens to work is a bonus! The output picture is always a bitmap.
Why is the output picture a bitmap? Why not another format?
Primarily, because the API call to set a wallpaper only works with bitmaps. Secondly, because bitmaps are uncompressed I imagine it’s slightly faster for Windows to load.
Desktop Stitcher won’t run, it just displays the instructions to me. What do I do?
Check your arguments. Make sure you haven’t missed any arguments. Make sure you’re using the arguments in the order specified. Make sure you’re not using mutually exclusive arguments (like /C and /R). Make sure files and folder exist as you’ve specified. Remember to enclose arguments in quotes if they contain whitespace characters.
I am being told “There are not enough images in your source folder.” Why?
Desktop Stitcher tries to prevent the same image being used more than once. That means you must have as least as many image files as you have specified rectangles.
I got an error message. What do I do?
First of all, try running it again. Sometimes files get locked out by the operating system and a re-try is all that’s needed. Failing that, double-check your arguments. If they seem correct, well, you’ll have to try and nut out the error message. Add the /V argument to get a full stack trace if you’re so inclined. Good luck!
There are better tools for managing multiple screens. Why use Desktop Stitcher?
Desktop Stitcher is simple, fairly flexible and best of all totally free.
How can I contact the author?
My contact details can be found here.