public
Last active

Image difference blend

  • Download Gist
difference_blend.rb
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
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')

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.