class ShatteredMachine::Defect
Use the defect algorithm from pnglitch on a given png image.
Public Class Methods
new(options = {})
click to toggle source
@param options [Hash] options for defect algorithm
# File lib/shattered_machine/defect.rb, line 8 def initialize(options = {}) @random = options[:random] || false @iterations = options[:iterations] || 1 end
Public Instance Methods
call(input_image, output_image)
click to toggle source
@param input_image [string] path for input image @param output_image [string] path for output defected image @return [boolean] status of defect
# File lib/shattered_machine/defect.rb, line 16 def call(input_image, output_image) PNGlitch.open(input_image) do |png| filtered_glitch(png).save output_image end output_image end
Private Instance Methods
filtered_glitch(png)
click to toggle source
# File lib/shattered_machine/defect.rb, line 25 def filtered_glitch(png) png.glitch do |data| if !@random data.gsub(/\d/, '') else @iterations.times do data[rand(data.size)] = '' end data end end end