Sha256: ef4ded235947d7379212923b26cfa5f5705fe46715af6960b122f88963945d11

Contents?: true

Size: 1.43 KB

Versions: 2

Compression:

Stored size: 1.43 KB

Contents

require 'rubygems'
require 'bundler'

Bundler.setup

require 'benchmark'
require 'chunky_png'

image = ChunkyPNG::Image.new(240, 180, ChunkyPNG::Color::TRANSPARENT)

# set some random pixels
image[10, 20] = ChunkyPNG::Color.rgba(255,   0,   0, 255)
image[50, 87] = ChunkyPNG::Color.rgba(  0, 255,   0, 255)
image[33, 99] = ChunkyPNG::Color.rgba(  0,   0, 255, 255)

n = (ENV['N'] || '5').to_i

puts "---------------------------------------------"
puts "ChunkyPNG (#{ChunkyPNG::VERSION}) encoding benchmark (n=#{n})"
puts "---------------------------------------------"
puts

Benchmark.bmbm do |x|
  x.report('Default (indexed)')  { n.times { image.to_blob } }

  # Presets
  x.report(':fast_rgba')         { n.times { image.to_blob(:fast_rgba) } }
  x.report(':fast_rgb')          { n.times { image.to_blob(:fast_rgb) } }
  x.report(':best_compression')  { n.times { image.to_blob(:best_compression) } }
  
  # Some options
  x.report(':rgb')        { n.times { image.to_blob(:color_mode => ChunkyPNG::COLOR_TRUECOLOR) } }
  x.report(':rgba')       { n.times { image.to_blob(:color_mode => ChunkyPNG::COLOR_TRUECOLOR_ALPHA) } }
  x.report(':indexed')    { n.times { image.to_blob(:color_mode => ChunkyPNG::COLOR_INDEXED) } }
  x.report(':interlaced') { n.times { image.to_blob(:interlaced => true) } }
  
  # Exports
  x.report('to RGBA pixelstream') { n.times { image.to_rgba_stream } }
  x.report('to RGB pixelstream')  { n.times { image.to_rgb_stream } }
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
chunky_png-0.9.2 benchmarks/encoding_benchmark.rb
chunky_png-0.9.1 benchmarks/encoding_benchmark.rb