Module: SafeImage::API::Transform

Included in:
SafeImage
Defined in:
lib/safe_image/api/transform.rb

Overview

Public image-producing operations. Every method requires explicit output paths; callers own any file replacement outside this API.

Instance Method Summary collapse

Instance Method Details

#convert(input:, output:, format:, quality: nil, optimize: true, max_pixels: nil, chroma_subsampling: :auto) ⇒ Object



109
110
111
112
113
114
115
116
117
118
119
# File 'lib/safe_image/api/transform.rb', line 109

def convert(input:, output:, format:, quality: nil, optimize: true, max_pixels: nil, chroma_subsampling: :auto)
  transform_operations.convert(
    input: input,
    output: output,
    format: format,
    quality: quality,
    optimize: optimize,
    max_pixels: max_pixels,
    chroma_subsampling: chroma_subsampling
  )
end

#convert_favicon_to_png(input:, output:, optimize: true, max_pixels: nil) ⇒ Object



125
126
127
128
129
130
131
132
# File 'lib/safe_image/api/transform.rb', line 125

def convert_favicon_to_png(input:, output:, optimize: true, max_pixels: nil)
  transform_operations.convert_favicon_to_png(
    input: input,
    output: output,
    optimize: optimize,
    max_pixels: max_pixels
  )
end

#crop(input:, output:, width:, height:, quality: nil, optimize: true, max_pixels: nil, chroma_subsampling: :auto) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/safe_image/api/transform.rb', line 67

def crop(
  input:,
  output:,
  width:,
  height:,
  quality: nil,
  optimize: true,
  max_pixels: nil,
  chroma_subsampling: :auto
)
  transform_operations.crop(
    input: input,
    output: output,
    width: width,
    height: height,
    quality: quality,
    optimize: optimize,
    max_pixels: max_pixels,
    chroma_subsampling: chroma_subsampling
  )
end

#downsize(input:, output:, dimensions:, optimize: true, max_pixels: nil, quality: QualityDefaults::JPEG, chroma_subsampling: :auto) ⇒ Object



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/safe_image/api/transform.rb', line 89

def downsize(
  input:,
  output:,
  dimensions:,
  optimize: true,
  max_pixels: nil,
  quality: QualityDefaults::JPEG,
  chroma_subsampling: :auto
)
  transform_operations.downsize(
    input: input,
    output: output,
    dimensions: dimensions,
    optimize: optimize,
    max_pixels: max_pixels,
    quality: quality,
    chroma_subsampling: chroma_subsampling
  )
end

#fix_orientation(input:, output:, max_pixels: nil, quality: nil) ⇒ Object



121
122
123
# File 'lib/safe_image/api/transform.rb', line 121

def fix_orientation(input:, output:, max_pixels: nil, quality: nil)
  transform_operations.fix_orientation(input: input, output: output, max_pixels: max_pixels, quality: quality)
end

#letter_avatar(output:, size:, background_rgb:, letter:, pointsize: 280, font: "DejaVu-Sans") ⇒ Object



134
135
136
137
138
139
140
141
142
143
# File 'lib/safe_image/api/transform.rb', line 134

def letter_avatar(output:, size:, background_rgb:, letter:, pointsize: 280, font: "DejaVu-Sans")
  transform_operations.letter_avatar(
    output: output,
    size: size,
    background_rgb: background_rgb,
    letter: letter,
    pointsize: pointsize,
    font: font
  )
end

#optimize(input:, output:, mode: :lossless, strip_metadata: true, quality: nil, strict: true) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/safe_image/api/transform.rb', line 34

def optimize(input:, output:, mode: :lossless, strip_metadata: true, quality: nil, strict: true)
  transform_operations.optimize(
    input: input,
    output: output,
    mode: mode,
    strip_metadata: ,
    quality: quality,
    strict: strict
  )
end

#resize(input:, output:, width:, height:, quality: nil, optimize: true, max_pixels: nil, chroma_subsampling: :auto) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/safe_image/api/transform.rb', line 45

def resize(
  input:,
  output:,
  width:,
  height:,
  quality: nil,
  optimize: true,
  max_pixels: nil,
  chroma_subsampling: :auto
)
  transform_operations.resize(
    input: input,
    output: output,
    width: width,
    height: height,
    quality: quality,
    optimize: optimize,
    max_pixels: max_pixels,
    chroma_subsampling: chroma_subsampling
  )
end

#thumbnail(input:, output:, width:, height:, format: nil, quality: QualityDefaults::JPEG, max_pixels: nil, optimize: false, optimize_mode: :lossless, chroma_subsampling: :auto) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/safe_image/api/transform.rb', line 8

def thumbnail(
  input:,
  output:,
  width:,
  height:,
  format: nil,
  quality: QualityDefaults::JPEG,
  max_pixels: nil,
  optimize: false,
  optimize_mode: :lossless,
  chroma_subsampling: :auto
)
  transform_operations.thumbnail(
    input: input,
    output: output,
    width: width,
    height: height,
    format: format,
    quality: quality,
    max_pixels: max_pixels,
    optimize: optimize,
    optimize_mode: optimize_mode,
    chroma_subsampling: chroma_subsampling
  )
end