Class: SafeImage::Processor
- Inherits:
-
Object
- Object
- SafeImage::Processor
- Defined in:
- lib/safe_image/processor.rb
Constant Summary collapse
- SUPPORTED_INPUTS =
Formats::NATIVE_INPUTS
- SUPPORTED_OUTPUTS =
Formats::NATIVE_OUTPUTS
- OPTIMIZABLE_OUTPUTS =
Formats the post-processing optimizer tools understand; other outputs skip the optimize pass instead of erroring.
Formats::OPTIMIZABLE_OUTPUTS
Instance Method Summary collapse
-
#initialize(max_pixels: nil, chroma_subsampling: :auto, config: SafeImage.config) ⇒ Processor
constructor
A new instance of Processor.
- #probe(path) ⇒ Object
- #thumbnail(input:, output:, width:, height:, format: nil, quality: QualityDefaults::JPEG, optimize: false, optimize_mode: :lossless) ⇒ Object
Constructor Details
#initialize(max_pixels: nil, chroma_subsampling: :auto, config: SafeImage.config) ⇒ Processor
Returns a new instance of Processor.
11 12 13 14 15 |
# File 'lib/safe_image/processor.rb', line 11 def initialize(max_pixels: nil, chroma_subsampling: :auto, config: SafeImage.config) @config = config @max_pixels = max_pixels || config.max_pixels @chroma_subsampling = chroma_subsampling end |
Instance Method Details
#probe(path) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/safe_image/processor.rb', line 17 def probe(path) input = safe_existing_file!(path) info = Native.probe(input.to_s, @max_pixels) validate_pixels!(info.fetch(:width), info.fetch(:height)) Result.( input: input, input_format: info.fetch(:format), width: info.fetch(:width), height: info.fetch(:height), backend: :vips, duration_ms: info.fetch(:duration_ms) ) end |
#thumbnail(input:, output:, width:, height:, format: nil, quality: QualityDefaults::JPEG, optimize: false, optimize_mode: :lossless) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/safe_image/processor.rb', line 31 def thumbnail( input:, output:, width:, height:, format: nil, quality: QualityDefaults::JPEG, optimize: false, optimize_mode: :lossless ) input, output, width, height, quality, out_format = prepare_thumbnail_request( input: input, output: output, width: width, height: height, format: format, quality: quality ) info = thumbnail_info(input: input, output: output, width: width, height: height, quality: quality, format: out_format) opt_info = optimize_thumbnail_output(output, format: out_format, quality: quality, mode: optimize_mode) if optimize thumbnail_result(input: input, output: output, info: info, optimizer: opt_info) end |