Filed in: Resources.ProgrammingCodeSnippletsCombine2NormalmapsInto1 · Modified on : Fri, 31 Jul 09
import sys
from pandac.PandaModules import *
if len(sys.argv) < 4:
print "usage: %s image1.jpg image2.jpg output.jpg" % sys.argv[0]
sys.exit()
imgName1 = sys.argv[1]
img1 = PNMImage()
img1.read(Filename(imgName1))
img1SizeX = img1.getXSize()
img1SizeY = img1.getYSize()
imgName2 = sys.argv[2]
img2 = PNMImage()
img2.read(Filename(imgName2))
img2SizeX = img2.getXSize()
img2SizeY = img2.getYSize()
if not ((img1SizeX == img2SizeX) and (img1SizeY == img2SizeY)):
print "Images not of equal pixel size"
sys.exit()
img3 = PNMImage(img1SizeX, img1SizeY)
for x in img1SizeX:
for y in img1SizeY:
r1 = img1.getRedVal(x,y)
g1 = img1.getGreenVal(x,y)
b1 = img1.getBlueVal(x,y)
a1 = img1.getAlphaVal(x,y)
r2 = img2.getRedVal(x,y)
g2 = img2.getGreenVal(x,y)
b2 = img2.getBlueVal(x,y)
a2 = img2.getAlphaVal(x,y)
r3 = (r1-128) + (r2-128) + 128
g3 = (g1-128) + (g2-128) + 128
b3 = b1 - (256-b2)
a3 = int( (a1+a2) / 2.0 )
img3.setRedVal(x,y,r3)
img3.setGreenVal(x,y,g3)
img3.setBlueVal(x,y,b3)
img3.setAlphaVal(x,y,a3)
img3.write(sys.argv[3])