65.9K
CodeProject is changing. Read more.
Home

Random Image Generator

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.12/5 (9 votes)

Nov 16, 2006

1 min read

viewsIcon

52834

downloadIcon

1384

A small app to generate random images using various C# drawing functions.

Introduction

This application uses various C# drawing functions to generate random images that can be used as wallpapers, etc..

Background

I started this program to teach myself the basic C# drawing functions. I kept getting more and more suggestions from friends and fans, and the project kept growing until I had quite a nice little program.

Points of Interest

The file_location parameter in:

const int SPI_SETDESKWALLPAPER = 20;
const int SPIF_UPDATEINIFILE = 0x01;
const int SPIF_SENDCHANGE = 0x2;
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, file_location, 
                     SPIF_UPDATEINIFILE | SPIF_SENDCHANGE);

can lead to very spectacular crashes. If it is empty when the user clicks on "apply" then the computer is completely off in approximately 0 seconds. Just comment out the if statement at the beginning of the apply-button click function and right after starting the app, without having generated an image click "apply" (but make sure you've saved everything before you do it). I'm not sure why this happens but it's definitely an interesting bug in the user_32.dll. Anyone have a clue why this happens?

The anti-aliasing feature is also interesting, the difference is very evident. I wanted to build it in permanently, but then decided to leave it as an option because some things look better without anti-aliasing (i.e., pixel blocks->all colors).

How to use the app

Not much I can say here. You just have to try things out till you get a good image. Because it is all random, if you generate enough times, you'll get a good result. Layering the images usually produces cool results, especially with a pixel block background. The small picture mosaic is also a lot of fun - GIF images with a transparent background look especially cool. Enjoy!