Command line utility for converting images to seamless tiles. It overlays images with an alpha gradient.
The resulting tiles can be used as textures in games, compositing and 3D modeling applications, etc.
Orion galaxy by NASA/ESA, in four copies side by side.
We cannot use the original image as an endless space background: the seams are visible.
The result of img2texture
, in four copies side by side.
The image is slightly reduced in size and the edges are modified with alpha-blending.
The converted image can be tiled and panned in any direction. It will feel endless and seamless.
The easiest way is to download and extract a binary executable:
Or install as a Python package:
pip3 install img2texture
Create new seamless.jpg
from source.jpg
.
img2texture /path/to/source.jpg /path/to/seamless.jpg
The --overlap
option determines how much of the image will be used to hide the seams.
For example, the following command uses 25% of the width and 25% of the height of the original image:
img2texture source.jpg seamless.jpg --overlap 0.25
Increasing the value makes the seam less visible. However, the image becomes smaller.
Sample images
5% of the width and 5% of the height are used to mask the seam.
40% of the width and 40% of the height are used to mask the seam.
The --tile
option will create a 2x2 tiled version in addition to the converted image.
The following command will create seamless.jpg
and seamless_2x2.jpg
.
img2texture source.jpg seamless.jpg --tile
All the samples on this page were created with --tile
.
If you don't need CLI but need to create seamless image in your own program:
from PIL import Image
from img2texture import image_to_seamless
# load PIL image
src_image = Image.open("/path/to/source.png")
# convert to seamless PIL image
result_image = image_to_seamless(src_image, overlap=0.1)
# save
result_image.save("/path/to/result.png")
overlap=0.1
means 10%, and overlap=(0.1, 0.2)
means 10% horizontal, 20% vertical.
Copyright © 2021 Artёm iG. Released under the MIT License.