Class Barby::PngOutputter
In: lib/barby/outputter/png_outputter.rb
Parent: Outputter
EAN13 Bookland EAN8 Barcode1D Code128 Code25 Code93 Code39 Barcode Barcode2D QrCode Pdf417 Code128A Code128B Code128C GS1128 Outputter CairoOutputter PngOutputter ASCIIOutputter PDFWriterOutputter RmagickOutputter PrawnOutputter SvgOutputter Code25IATA Code25Interleaved lib/barby/barcode/gs1_128.rb lib/barby/outputter/png_outputter.rb lib/barby/outputter/svg_outputter.rb lib/barby/outputter/rmagick_outputter.rb lib/barby/barcode.rb lib/barby/outputter/ascii_outputter.rb lib/barby/outputter.rb lib/barby/barcode/code_128.rb lib/barby/barcode/code_39.rb lib/barby/outputter/pdfwriter_outputter.rb lib/barby/barcode/code_93.rb lib/barby/outputter/prawn_outputter.rb lib/barby/barcode/pdf_417.rb lib/barby/barcode/ean_8.rb lib/barby/barcode/code_25_iata.rb lib/barby/outputter/cairo_outputter.rb lib/barby/barcode/ean_13.rb lib/barby/barcode/code_25.rb lib/barby/barcode/code_25_interleaved.rb lib/barby/barcode/qr_code.rb lib/barby/barcode/bookland.rb VERSION Barby dot/m_22_0.png

Renders the barcode to a PNG image using the "png" gem (gem install png)

Registers the to_png and to_canvas methods

Methods

full_height   full_width   height   length   margin   to_canvas   to_png   width   xdim   ydim  

Attributes

height  [RW] 
margin  [RW] 
width  [RW] 
xdim  [RW] 
ydim  [RW] 

Public Instance methods

[Source]

    # File lib/barby/outputter/png_outputter.rb, line 74
74:     def full_height
75:       height + (margin * 2)
76:     end

[Source]

    # File lib/barby/outputter/png_outputter.rb, line 70
70:     def full_width
71:       width + (margin * 2)
72:     end

[Source]

    # File lib/barby/outputter/png_outputter.rb, line 66
66:     def height
67:       barcode.two_dimensional? ? (ydim * encoding.length) : (@height || 100)
68:     end

[Source]

    # File lib/barby/outputter/png_outputter.rb, line 90
90:     def length
91:       barcode.two_dimensional? ? encoding.first.length : encoding.length
92:     end

[Source]

    # File lib/barby/outputter/png_outputter.rb, line 86
86:     def margin
87:       @margin || 10
88:     end

Creates a PNG::Canvas object and renders the barcode on it

[Source]

    # File lib/barby/outputter/png_outputter.rb, line 17
17:     def to_canvas(opts={})
18:       with_options opts do
19:         canvas = PNG::Canvas.new(full_width, full_height, PNG::Color::White)
20: 
21:         if barcode.two_dimensional?
22:           x, y = margin, margin
23:           booleans.reverse_each do |line|
24:             line.each do |bar|
25:               if bar
26:                 x.upto(x+(xdim-1)) do |xx|
27:                   y.upto y+(ydim-1) do |yy|
28:                     canvas[xx,yy] = PNG::Color::Black
29:                   end
30:                 end
31:               end
32:               x += xdim
33:             end
34:             y += ydim
35:             x = margin
36:           end
37:         else
38:           x, y = margin, margin
39:           booleans.each do |bar|
40:             if bar
41:               x.upto(x+(xdim-1)) do |xx|
42:                 y.upto y+(height-1) do |yy|
43:                   canvas[xx,yy] = PNG::Color::Black
44:                 end
45:               end
46:             end
47:             x += xdim
48:           end
49:         end
50: 
51:         canvas
52:       end
53:     end

Renders the barcode to a PNG image

[Source]

    # File lib/barby/outputter/png_outputter.rb, line 57
57:     def to_png(*a)
58:       PNG.new(to_canvas(*a)).to_blob
59:     end

[Source]

    # File lib/barby/outputter/png_outputter.rb, line 62
62:     def width
63:       length * xdim
64:     end

[Source]

    # File lib/barby/outputter/png_outputter.rb, line 78
78:     def xdim
79:       @xdim || 1
80:     end

[Source]

    # File lib/barby/outputter/png_outputter.rb, line 82
82:     def ydim
83:       @ydim || xdim
84:     end

[Validate]