MMWPC

Multi-monitor wallpaper creator.
Tool
C++

Multi-monitor wallpaper creator is a small windows application used to quickly create wallpapers for multiple monitors.
You can stretch images over multiple screen of different resolutions while maintaining the picture.

The program is written in C++ and has a custom written UI. It makes use of windows and Direct2D libraries.

This is a personal project I started because I have a lot of monitors and didn't found a simplistic program for my specific uses.

Auto exporting images will save them as:
'C:\Users\%UserName%\Pictures\Wallpapers\'day-month-year_hour-minutes-seconds.png'

Logo by Arno de Keukelaere

Features

Make selections of one or multiple monitors.
Apply images or solid colors to selections.
Stretch images with multiple methods.
Mask out monitor area from selection.

Showcase
Manual

There are four areas in this program: Selection, Edit buttons, Function buttons and Layers.

Selection

Here you select your monitors by either clicking the rectangles with your screen position or the name of your monitor.
Monitors without a specific driver will appear as 'Generic PnP Monitor' or another default name.

Interactions:
- Left click: set selection to this monitor.
- Right click or Ctrl Left click: Toggle select this monitor.
- Shift Left click: Add this monitor to selection.

Edit buttons

Select All: Select all monitors
Select None: Reset selection
Reload Setup: Reloads your monitor setup, this will unlink all your layers form their selection!
Show Borders: Toggle if borders should be draw in the selection window
Show Selection: Toggle if selection should be drawn in the selection window
Reset Isolation: resets the isolation, label shows what layer is isolated

Function buttons

Export: Export the current wallpaper as image
Set Wallpaper: Exports to default location and sets as wallpaper
Restore Wallpaper: Sets the wallpaper to the one before you started the program
Reset: Removes all layers
Quit: Exits the program

Layers

+ Solid Color: Create a new solid color layer (right click to directly set color)
+ Image: Create a new image layer (right click to directly set image)
Current: load in the current wallpaper

▢: Set selection
▲▼: Move layer up or down in hierarchy
🅘: Isolate layer, does not affect export
✘: Delete layer
alpha: opacity slider

Fill Type: ▢ fill area, ▣ fill and mask monitors, ⧉ fill each individual
👀 toggle visibility, affects export

Press color/image button to select a new color/image

◨⬓: Flip image horizontal or vertical
Left: image stretch methods
right: image alignment

Working

The program is written in C++ and made using Visual Studio.
Windows and Direct2D libraries are used making this a windows-only application.

The user interface is custom written with the aim of it being easy and in a certain way scalable.
I wrote the user interface myself as a challenge.

Everything in the window is drawn by Direct2D.
When you export a wallpaper the image is calculated pixel by pixel and not drawn by Direct2D.
This method makes it impossible to have colors influence the border of another monitor.

Download latest Version 2.1: direct download mediafire mirror
Future
  • Upgrade to WPF
  • Easier image displacement
  • Blending modes
  • Effects (vignette etc)
  • Custom color picker
  • Undo Redo
  • UI Scaling
Version log Version 2.1 [10/17]: direct download mediafire mirror [current version]

- automatic wallpaper style updating
- icon
- less ugly user interface
- prevent crash when no wallpaper was set before program starts.

Version 2.0 [08/17]: not available

- layer system
- stretch methods
- monitor cutout
-ugly user interface

Version 1.0 [02/16]: direct download [deprecated].

- no layers
- properties per monitor or all monitors

⇽ Back