Class: ImageProcessing::MiniMagick::Processor
- Inherits:
-
Processor
- Object
- Processor
- ImageProcessing::MiniMagick::Processor
show all
- Defined in:
- lib/image_processing/mini_magick.rb
Defined Under Namespace
Modules: Utils
Constant Summary
collapse
- SHARPEN_PARAMETERS =
{ radius: 0, sigma: 1 }
Class Method Summary
collapse
Instance Method Summary
collapse
-
#append(*args) ⇒ Object
-
#composite(overlay = :none, mask: nil, compose: nil, gravity: nil, geometry: nil, args: nil) {|magick| ... } ⇒ Object
-
#define(options) ⇒ Object
-
#limits(options) ⇒ Object
-
#resize_and_pad(width, height, background: :transparent, gravity: "Center", **options) ⇒ Object
-
#resize_to_fill(width, height, gravity: "Center", **options) ⇒ Object
-
#resize_to_fit(width, height, **options) ⇒ Object
-
#resize_to_limit(width, height, **options) ⇒ Object
-
#rotate(degrees, background: nil) ⇒ Object
Methods inherited from Processor
accumulator, apply_operation, #custom, #initialize
Class Method Details
.load_image(path_or_magick, page: nil, geometry: nil, auto_orient: true, **options) ⇒ Object
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/image_processing/mini_magick.rb', line 23
def self.load_image(path_or_magick, page: nil, geometry: nil, auto_orient: true, **options)
if path_or_magick.is_a?(::MiniMagick::Tool)
magick = path_or_magick
else
source_path = path_or_magick
magick = ::MiniMagick::Tool::Convert.new
Utils.apply_options(magick, options)
input_path = source_path
input_path += "[#{page}]" if page
input_path += "[#{geometry}]" if geometry
magick << input_path
end
magick.auto_orient if auto_orient
magick
end
|
.save_image(magick, destination_path, allow_splitting: false, **options) ⇒ Object
43
44
45
46
47
48
49
50
|
# File 'lib/image_processing/mini_magick.rb', line 43
def self.save_image(magick, destination_path, allow_splitting: false, **options)
Utils.apply_options(magick, options)
magick << destination_path
magick.call
Utils.disallow_split_layers!(destination_path) unless allow_splitting
end
|
Instance Method Details
#append(*args) ⇒ Object
109
110
111
|
# File 'lib/image_processing/mini_magick.rb', line 109
def append(*args)
magick.merge! args
end
|
#composite(overlay = :none, mask: nil, compose: nil, gravity: nil, geometry: nil, args: nil) {|magick| ... } ⇒ Object
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
# File 'lib/image_processing/mini_magick.rb', line 79
def composite(overlay = :none, mask: nil, compose: nil, gravity: nil, geometry: nil, args: nil, &block)
return magick.composite if overlay == :none
overlay_path = convert_to_path(overlay, "overlay")
mask_path = convert_to_path(mask, "mask") if mask
magick << overlay_path
magick << mask_path if mask_path
magick.compose(compose) if compose
define(compose: { args: args }) if args
magick.gravity(gravity) if gravity
magick.geometry(geometry) if geometry
yield magick if block_given?
magick.composite
end
|
#define(options) ⇒ Object
99
100
101
102
|
# File 'lib/image_processing/mini_magick.rb', line 99
def define(options)
return magick.define(options) if options.is_a?(String)
Utils.apply_define(magick, options)
end
|
#limits(options) ⇒ Object
104
105
106
107
|
# File 'lib/image_processing/mini_magick.rb', line 104
def limits(options)
options.each { |type, value| magick.args.unshift("-limit", type.to_s, value.to_s) }
magick
end
|
#resize_and_pad(width, height, background: :transparent, gravity: "Center", **options) ⇒ Object
67
68
69
70
71
72
|
# File 'lib/image_processing/mini_magick.rb', line 67
def resize_and_pad(width, height, background: :transparent, gravity: "Center", **options)
thumbnail("#{width}x#{height}", **options)
magick.background color(background)
magick.gravity gravity
magick.extent "#{width}x#{height}"
end
|
#resize_to_fill(width, height, gravity: "Center", **options) ⇒ Object
60
61
62
63
64
65
|
# File 'lib/image_processing/mini_magick.rb', line 60
def resize_to_fill(width, height, gravity: "Center", **options)
thumbnail("#{width}x#{height}^", **options)
magick.gravity gravity
magick.background color(:transparent)
magick.extent "#{width}x#{height}"
end
|
#resize_to_fit(width, height, **options) ⇒ Object
56
57
58
|
# File 'lib/image_processing/mini_magick.rb', line 56
def resize_to_fit(width, height, **options)
thumbnail("#{width}x#{height}", **options)
end
|
#resize_to_limit(width, height, **options) ⇒ Object
52
53
54
|
# File 'lib/image_processing/mini_magick.rb', line 52
def resize_to_limit(width, height, **options)
thumbnail("#{width}x#{height}>", **options)
end
|
#rotate(degrees, background: nil) ⇒ Object
74
75
76
77
|
# File 'lib/image_processing/mini_magick.rb', line 74
def rotate(degrees, background: nil)
magick.background color(background) if background
magick.rotate(degrees)
end
|