Skip to content

Instantly share code, notes, and snippets.

@jeffkreeftmeijer
Created April 18, 2011 08:34
Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save jeffkreeftmeijer/924996 to your computer and use it in GitHub Desktop.
Save jeffkreeftmeijer/924996 to your computer and use it in GitHub Desktop.
Image difference blend
require 'chunky_png'
include ChunkyPNG::Color
images = [
ChunkyPNG::Image.from_file('1.png'),
ChunkyPNG::Image.from_file('2.png')
]
images.first.height.times do |y|
images.first.row(y).each_with_index do |pixel, x|
channels = [
[r(pixel), r(images.last[x,y])],
[g(pixel), g(images.last[x,y])],
[b(pixel), b(images.last[x,y])]
]
images.last[x,y] = rgb(
*channels.map do |channel|
channel.first + channel.last - 2 * channel.min
end
)
end
end
images.last.save('diff.png')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment