Subtractive

From Director Online Wiki
Jump to: navigation, search
--c := a+b-256;
--if c < 0 then result := 0 else result := c;
-- ******* subtractive mode *************
on subtractiveBlendMode (image1, image2)
 
  theWidth = image1.width - 1
  theHeight = image1.height - 1
  theImage = image(theWidth + 1, theHeight + 1, 32)
 
  repeat with x = 0 to theWidth
    repeat with y = 0 to theHeight
      theColour1 = image1.getPixel(point(x,y))
      theColour2 = image2.getPixel(point(x,y))
      theNewColour = color(0,0,0)
 
      theNewColour.red = max(theColour1.red + theColour2.red - 256, 0)
      theNewColour.green = max(theColour1.green + theColour2.green - 256, 0)
      theNewColour.blue = max(theColour1.blue + theColour2.blue - 256, 0)
 
      theImage.setPixel(point(x, y), theNewColour)
 
    end repeat
  end repeat
  return theImage
end