# File lib/barby/outputter/png_outputter.rb, line 17
    def to_canvas(opts={})
      with_options opts do
        canvas = PNG::Canvas.new(full_width, full_height, PNG::Color::White)

        if barcode.two_dimensional?
          x, y = margin, margin
          booleans.reverse_each do |line|
            line.each do |bar|
              if bar
                x.upto(x+(xdim-1)) do |xx|
                  y.upto y+(ydim-1) do |yy|
                    canvas[xx,yy] = PNG::Color::Black
                  end
                end
              end
              x += xdim
            end
            y += ydim
            x = margin
          end
        else
          x, y = margin, margin
          booleans.each do |bar|
            if bar
              x.upto(x+(xdim-1)) do |xx|
                y.upto y+(height-1) do |yy|
                  canvas[xx,yy] = PNG::Color::Black
                end
              end
            end
            x += xdim
          end
        end

        canvas
      end
    end