# File lib/png.rb, line 451
    def composite canvas, x, y, style = :overwrite
      canvas.each do |x1, y1, color|
        case style
        when :overwrite then
          self[x+x1, y+y1] = color
        when :add, :underlay then
          self[x+x1, y+y1] = self[x+x1, y+y1] | color
        when :overlay then
          self[x+x1, y+y1] = color | self[x+x1, y+y1]
        when :blend then
          self.point x+x1, y+y1, color
        else
          raise "unknown style for composite: #{style.inspect}"
        end
      end
    end