HEX
Server: Apache
System: Windows NT MAGNETO-ARM 10.0 build 22000 (Windows 10) AMD64
User: Michel (0)
PHP: 7.4.7
Disabled: NONE
Upload Files
File: C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/chunky_png-1.4.0/benchmarks/filesize_benchmark.rb
require "rubygems"
require "bundler/setup"

require "benchmark"
require "chunky_png"

files = ["pixelstream_reference.png", "operations.png", "clock.png"]

def encode_png(image, constraints = {})
  filesize = nil
  time = Benchmark.realtime { filesize = image.to_blob(constraints).bytesize }
  [filesize, time]
end

files.each do |file|
  filename = File.join(File.dirname(__FILE__), "..", "spec", "resources", file)
  image = ChunkyPNG::Canvas.from_file(filename)

  puts "#{file}: #{image.width}x#{image.height} - #{image.palette.size} colors"
  puts "------------------------------------------------"
  puts "<default>         : %8d bytes in %0.4fs" % encode_png(image)
  puts ":no_compression   : %8d bytes in %0.4fs" % encode_png(image, :no_compression)
  puts ":fast_rgba        : %8d bytes in %0.4fs" % encode_png(image, :fast_rgba)
  puts ":fast_rgb         : %8d bytes in %0.4fs" % encode_png(image, :fast_rgb)
  puts ":good_compression : %8d bytes in %0.4fs" % encode_png(image, :good_compression)
  puts ":best_compression : %8d bytes in %0.4fs" % encode_png(image, :best_compression)
  puts
end