class BlurFaces

Attributes

faces[RW]

Public Class Methods

new(fname=nil) click to toggle source
# File lib/blurfaces.rb, line 13
def initialize(fname=nil)

  @df = DetectFaces.new
  read(fname) if fname 

end

Public Instance Methods

blur(strength: 8) click to toggle source
# File lib/blurfaces.rb, line 20
def blur(strength: 8)

  @faces.each do |x, y, width, height|

    region = @img.dispatch(x, y, width, height, 'RGB')
    face_img = Magick::Image.constitute(width, height, "RGB", region)

    @img.composite!(face_img.gaussian_blur(0, strength), x, y, 
      Magick::OverCompositeOp)

  end

end
read(fname) click to toggle source
# File lib/blurfaces.rb, line 34
def read(fname)

  @fname = fname
  @faces = @df.read(fname).faces
  @img = Magick::Image.read(fname)[0]

  self

end
save(fname) click to toggle source
# File lib/blurfaces.rb, line 44
def save(fname)
  @img.write(fname)
end