Module: AttachmentSaver::Processors::MiniMagick
- Includes:
- Image
- Defined in:
- lib/processors/mini_magick.rb
Defined Under Namespace
Modules: Operations
Constant Summary
Constants included
from Image
Image::DEFAULT_VALID_IMAGE_TYPES
Instance Method Summary
collapse
Methods included from Image
#before_validate_attachment, #build_derived, #derived_image?, from_geometry_string, #image?, #process_attachment, #process_attachment?, #update_derived, #valid_image_type, #want_format?
Instance Method Details
#examine_image ⇒ Object
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/processors/mini_magick.rb', line 31
def examine_image
with_image_attributes(uploaded_file_path) do |original_image|
self.content_type = original_image.mime_type unless self.class.attachment_options[:keep_content_type] || original_image.mime_type.blank?
self.file_extension = original_image.file_type_extension unless self.class.attachment_options[:keep_file_extension] || original_image.file_type_extension.blank?
self.width = original_image.width if respond_to?(:width)
self.height = original_image.height if respond_to?(:height)
end
rescue AttachmentSaverError
raise
rescue Exception => ex
raise MiniMagickProcessorError, "#{ex.class}: #{ex.message}", ex.backtrace
end
|
#process_image(original_image, derived_format_name, resize_format) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/processors/mini_magick.rb', line 44
def process_image(original_image, derived_format_name, resize_format)
resize_format = Image.from_geometry_string(resize_format) if resize_format.is_a?(String)
original_image.send(*resize_format) do |derived_image|
return nil unless want_format?(derived_format_name, derived_image.width, derived_image.height)
derived_content_type = derived_image.mime_type || original_image.mime_type || content_type
derived_extension = derived_image.file_type_extension
temp = ExtendedTempfile.new("asmtemp", tempfile_directory, derived_extension)
temp.binmode
temp.close
derived_image.write(temp.path)
temp.open
{ :format_name => derived_format_name.to_s,
:width => derived_image.width,
:height => derived_image.height,
:content_type => derived_content_type,
:file_extension => derived_extension,
:uploaded_data => temp }
end
end
|
#with_image(filename, &block) ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/processors/mini_magick.rb', line 13
def with_image(filename, &block)
if ::MiniMagick::Image.respond_to?(:open)
image = ::MiniMagick::Image.open(filename)
else
image = ::MiniMagick::Image.new(filename)
end
block.call(image.extend(Operations))
end
|
#with_image_attributes(filename, &block) ⇒ Object
25
26
27
28
29
|
# File 'lib/processors/mini_magick.rb', line 25
def with_image_attributes(filename, &block)
with_image(filename, &block)
end
|