21.07.2020, 11:52
(Dieser Beitrag wurde zuletzt bearbeitet: 26.07.2020, 17:34 von Manfred Aabye.)
Ich habe mal so ein kleines Python Programm geschrieben was einfach aus einem x Belibigen Bild ein fast fertiges Terrain erstellt.
heightmap.py Groesse Weichzeichnen Helligkeit Dateiname
Groesse muss in 256er schritten erfolgen z.B. 256, 512, 768, 1024 u.s.w.
Weichzeichnen ist, damit die harten Kannten weicher werden, ein vernuenftiger Wert liegt zwischen 0.0 und 5.0 (0 = keine Veränderung)
Helligkeit um die hoehe zu reduzieren, Werte um 0.2 - 0.5 sind gut. (1 = keine Veränderung)
Dateiname und ggf. Pfad des zu ladenden Bildes.
## Linux:
#./heightmap.py 256 1.5 0.2 /Pfad/Bild.jpg
## Windows:
#C:/Python38/python.exe heightmap.py 256 1.5 0.2 G:/Pfad/Bild.jpg
# Die Bilddatei kann jpg, png, ico, bmp und so weiter sein.
# Das ausgabeformat ist eine 24 bit png heightmap fuer den OpenSimulator.
Benutzung auf eigene Gefahr!!!
Python 3
pip3 install Image
heightmap.py Groesse Weichzeichnen Helligkeit Dateiname
Groesse muss in 256er schritten erfolgen z.B. 256, 512, 768, 1024 u.s.w.
Weichzeichnen ist, damit die harten Kannten weicher werden, ein vernuenftiger Wert liegt zwischen 0.0 und 5.0 (0 = keine Veränderung)
Helligkeit um die hoehe zu reduzieren, Werte um 0.2 - 0.5 sind gut. (1 = keine Veränderung)
Dateiname und ggf. Pfad des zu ladenden Bildes.
## Linux:
#./heightmap.py 256 1.5 0.2 /Pfad/Bild.jpg
## Windows:
#C:/Python38/python.exe heightmap.py 256 1.5 0.2 G:/Pfad/Bild.jpg
# Die Bilddatei kann jpg, png, ico, bmp und so weiter sein.
# Das ausgabeformat ist eine 24 bit png heightmap fuer den OpenSimulator.
Benutzung auf eigene Gefahr!!!
Python 3
pip3 install Image
Code:
#!/usr/bin/env python3
from sys import argv
import glob, os
from PIL import Image
from PIL import ImageOps
from PIL import ImageFilter
from PIL import ImageEnhance
### Aufruf Beispiele
# heightmap.py Groesse Weichzeichnen Helligkeit Dateiname
# Groesse muss in 256er schritten erfolgen z.B. 256, 512, 768, 1024 u.s.w.
# Weichzeichnen ist, damit die harten Kannten weicher werden, ein vernuenftiger Wert liegt zwischen 0.0 und 5.0
# Helligkeit um die hoehe zu reduzieren, Werte um 0.2 sind gut.
# Dateiname und ggf. Pfad des zu ladenden Bildes.
## Linux:
#./heightmap.py 256 1.5 0.2 /Pfad/Bild.jpg
## Windows:
#C:/Python38/python.exe heightmap.py 256 1.5 0.2 G:/Pfad/Bild.jpg
# Die Bilddatei kann jpg, png, ico, bmp und so weiter sein.
# Das ausgabeformat ist eine 24 bit png heightmap fuer den OpenSimulator.
xsize = int(argv[1]) # Einstellung groesse
gaussianradius = float(argv[2]) # Einstellung weichzeichnen der Uebergaenge Wasser Land
brightness = float(argv[3]) # Einstellung Helligkeit
filename = (argv[4]) # Einstellung Dateiname
size = xsize, xsize
print(size) # Kontrollausgabe
print(gaussianradius) # Kontrollausgabe
print(brightness) # Kontrollausgabe
print(filename) # Kontrollausgabe
for infile in glob.glob(filename):
file, ext = os.path.splitext(infile)
im = Image.open(infile) # Datei oeffnen
im = im.convert('LA') # in Graustufen umwandeln
im = im.resize((size)) # groesse aendern
im = im.filter(ImageFilter.GaussianBlur(gaussianradius)) # weichzeichnen der Uebergaenge
im = im.convert('RGB') # konvertieren in 24bit
# Terrain muss zwischen 1E1E1E und 464646 (-10 und +30 Meter)liegen - 1m. ueber Boden = 292929 - Wasserhoehe = 282828
brightnessMod = ImageEnhance.Brightness(im) # Helligkeit anpassen
im = brightnessMod.enhance(brightness) # Helligkeit anpassen
#contrastMod = ImageEnhance.Contrast(im) # Kontrast anpassen
#im = contrastMod.enhance(contrast) # Kontrast anpassen
#sharpnessMod = ImageEnhance.Sharpness(im) # Schaerfe anpassen
#im = sharpnessMod.enhance(sharpness) # Schaerfe anpassen
outfile = file + str(xsize) # Konvertiert die Regionsgroesse in ein String und haengt diesen an den Dateinamen an.
im.save(outfile + ".png", "PNG") # Datei speichern
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.