Sha256: 4058afce7a28d96c4ba2e944d7597385591308493035bc5a41b8b83150dd0aaa

Contents?: true

Size: 1.69 KB

Versions: 5

Compression:

Stored size: 1.69 KB

Contents

require "rubygems"
require "bundler/setup"

require "benchmark"
require "chunky_png"

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

# set some random pixels

# rubocop:disable Layout/ExtraSpacing, Layout/SpaceInsideParens
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)
# rubocop:enable Layout/ExtraSpacing, Layout/SpaceInsideParens

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

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

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

  # Presets
  x.report(":no_compression")    { n.times { image.to_blob(:no_compression) } }
  x.report(":fast_rgba")         { n.times { image.to_blob(:fast_rgba) } }
  x.report(":fast_rgb")          { n.times { image.to_blob(:fast_rgb) } }
  x.report(":good_compression")  { n.times { image.to_blob(:good_compression) } }
  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

5 entries across 5 versions & 1 rubygems

Version Path
chunky_png-1.4.0 benchmarks/encoding_benchmark.rb
chunky_png-1.3.15 benchmarks/encoding_benchmark.rb
chunky_png-1.3.14 benchmarks/encoding_benchmark.rb
chunky_png-1.3.13 benchmarks/encoding_benchmark.rb
chunky_png-1.3.12 benchmarks/encoding_benchmark.rb