0

Modified tintTexture() to look more like the original grass color

This commit is contained in:
Andrew Chin
2010-11-03 22:57:47 -04:00
parent 290269f8fe
commit 0b6461083b

View File

@@ -21,7 +21,7 @@ from cStringIO import StringIO
import math import math
import numpy import numpy
from PIL import Image, ImageEnhance from PIL import Image, ImageEnhance, ImageOps
import util import util
@@ -497,7 +497,7 @@ def generate_special_texture(blockID, data):
return (img.convert("RGB"), img.split()[3]) return (img.convert("RGB"), img.split()[3])
if blockID == 2: # grass if blockID == 2: # grass
top = transform_image(tintTexture(terrain_images[0],(0,255,0,255))) top = transform_image(tintTexture(terrain_images[0],(170,255,50)))
side1 = transform_image_side(terrain_images[3]) side1 = transform_image_side(terrain_images[3])
side2 = transform_image_side(terrain_images[3]).transpose(Image.FLIP_LEFT_RIGHT) side2 = transform_image_side(terrain_images[3]).transpose(Image.FLIP_LEFT_RIGHT)
@@ -509,7 +509,7 @@ def generate_special_texture(blockID, data):
return (img.convert("RGB"), img.split()[3]) return (img.convert("RGB"), img.split()[3])
if blockID == 18: # leaves if blockID == 18: # leaves
t = tintTexture(terrain_images[52], (0, 255, 0, 255)) t = tintTexture(terrain_images[52], (170, 255, 50))
top = transform_image(t) top = transform_image(t)
side1 = transform_image_side(t) side1 = transform_image_side(t)
side2 = transform_image_side(t).transpose(Image.FLIP_LEFT_RIGHT) side2 = transform_image_side(t).transpose(Image.FLIP_LEFT_RIGHT)
@@ -525,10 +525,10 @@ def generate_special_texture(blockID, data):
return None return None
def tintTexture(im, c): def tintTexture(im, c):
color_map = [] # apparently converting to grayscale drops the alpha channel?
for component in c: i = ImageOps.colorize(ImageOps.grayscale(im), (0,0,0), c)
color_map.extend(int(component/255.0*i) for i in range(256)) i.putalpha(im.split()[3]); # copy the alpha band back in. assuming RGBA
return im.point(color_map) return i
# This set holds block ids that require special pre-computing. These are typically # This set holds block ids that require special pre-computing. These are typically
# things that require ancillary data to render properly (i.e. ladder plus orientation) # things that require ancillary data to render properly (i.e. ladder plus orientation)