Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generator of tiled wallpapers #28

Open
peteroupc opened this issue Jan 18, 2024 · 4 comments
Open

Generator of tiled wallpapers #28

peteroupc opened this issue Jan 18, 2024 · 4 comments
Labels
enhancement New feature or request

Comments

@peteroupc
Copy link

peteroupc commented Jan 18, 2024

Include a generator of images that have the feel of classic tiled wallpapers. The following are suggestions on how the generator can generate these tiled wallpapers.

  • Relief effect, based on a two-color (silhouette) image (such as one generated by thresholding an existing image). This generates a three-color image.
  • Dither to a limited color palette, such as a classic 16-color palette.
  • 8x8 two-color tiled pattern.
  • Convert to grayscale then shift the grayscale palette to a color gradient.
  • Hue shifting.
  • Tileable noise.
  • Tileable procedural textures.
  • Tileable arrangements of symbols or small images with partial transparency.
  • Other procedural tileable patterns.
  • Combinations of any of the foregoing.

None of the suggestions above should involve artificial intelligence.

@anufrievroman anufrievroman added the enhancement New feature or request label Jan 18, 2024
@anufrievroman
Copy link
Owner

To be honest, the code for this kind of generator and its UI will probably be larger than the entire code for this application at the moment :D I mean, it seems a bit too complex for a very niche feature. Maybe you have some examples of programs that do that or even better some projects that could be used as a dependency?

@peteroupc
Copy link
Author

peteroupc commented Jan 20, 2024

My interest here is in simple programs that generate tiled wallpapers of abstract designs without artificial intelligence, especially if they evoke the feel of classic wallpapers from the 90s and earlier.

There are several open-source wallpaper generators, many of which are in Python and include the following:

Many of these repositories could use the suggestions given in my previous message to generate new kinds of wallpapers.

A Python wallpaper generator can involve the use of ImageMagick (especially its convert tool) as well as Python's pillow library. In addition, it's enough for this issue to support the following operations in its user interface:

  • Relief effect, described above. (Input: An image.)
  • Dither to the 16-bit Windows palette. (Input: An image.)
  • Dither to the 216-bit Web safe palette. (Input: An image.)
  • Hue shifting. (Input: An image; a hue from 0 to 360.)
  • Convert to grayscale then shift the grayscale palette to a two-color gradient. (Input: An image; two colors.)

Other operations (described in my previous message) can be added later if they're easy enough to write, or Waypaper can add a button that generates a random wallpaper with the help of a third-party open-source wallpaper generator like the ones linked to above.

@peteroupc
Copy link
Author

peteroupc commented Feb 4, 2024

Indeed, the last four of the five effects I listed (and several more) are possible in less than a hundred lines of Python code and the ImageMagick convert tool: https://github.com/peteroupc/classic-wallpaper/blob/main/desktopwallpaper.py

@anufrievroman
Copy link
Owner

anufrievroman commented May 24, 2024

I checked a bit all the repositories, yes, it's very interesting.
Note to myself: This is easy to add or this to create waypaper.

The conceptual problem I have is that if a make a generator, I won't be able to include a bunch of controls with it to substantially change the generated images. But, considering that each generator generate very similar images just color pallet (which is the main parameter) is different, I wonder if it's not easier to just pre-generate a bunch of images for all color pallets that I plan to supply as options... Anyways, I'll think about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants