image_pack 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/README.md +108 -119
  4. data/ext/image_pack/extconf.rb +36 -125
  5. data/ext/image_pack/image_pack.c +736 -614
  6. data/ext/image_pack/mozjpeg_sources.rb +178 -0
  7. data/ext/image_pack/vendor/mozjpeg/BUILDING.md +744 -0
  8. data/ext/image_pack/vendor/mozjpeg/CODE_OF_CONDUCT.md +15 -0
  9. data/ext/image_pack/vendor/mozjpeg/ChangeLog.md +1996 -0
  10. data/lib/image_pack/configuration.rb +54 -8
  11. data/lib/image_pack/version.rb +1 -1
  12. data/lib/image_pack.rb +87 -25
  13. metadata +14 -79
  14. data/ext/image_pack/vendor/mozjpeg/README.ijg +0 -258
  15. data/ext/image_pack/vendor/mozjpeg/cdjpeg.c +0 -156
  16. data/ext/image_pack/vendor/mozjpeg/cjpeg.c +0 -961
  17. data/ext/image_pack/vendor/mozjpeg/djpeg.c +0 -855
  18. data/ext/image_pack/vendor/mozjpeg/jaricom.c +0 -157
  19. data/ext/image_pack/vendor/mozjpeg/jcarith.c +0 -972
  20. data/ext/image_pack/vendor/mozjpeg/jcstest.c +0 -126
  21. data/ext/image_pack/vendor/mozjpeg/jdarith.c +0 -782
  22. data/ext/image_pack/vendor/mozjpeg/jdatadst-tj.c +0 -198
  23. data/ext/image_pack/vendor/mozjpeg/jdatasrc-tj.c +0 -194
  24. data/ext/image_pack/vendor/mozjpeg/jpegtran.c +0 -827
  25. data/ext/image_pack/vendor/mozjpeg/jpegyuv.c +0 -172
  26. data/ext/image_pack/vendor/mozjpeg/rdbmp.c +0 -690
  27. data/ext/image_pack/vendor/mozjpeg/rdcolmap.c +0 -253
  28. data/ext/image_pack/vendor/mozjpeg/rdgif.c +0 -720
  29. data/ext/image_pack/vendor/mozjpeg/rdjpeg.c +0 -160
  30. data/ext/image_pack/vendor/mozjpeg/rdjpgcom.c +0 -494
  31. data/ext/image_pack/vendor/mozjpeg/rdpng.c +0 -194
  32. data/ext/image_pack/vendor/mozjpeg/rdppm.c +0 -781
  33. data/ext/image_pack/vendor/mozjpeg/rdswitch.c +0 -642
  34. data/ext/image_pack/vendor/mozjpeg/rdtarga.c +0 -508
  35. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jccolext-neon.c +0 -148
  36. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jchuff-neon.c +0 -334
  37. data/ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jsimd.c +0 -976
  38. data/ext/image_pack/vendor/mozjpeg/simd/i386/jsimd.c +0 -1312
  39. data/ext/image_pack/vendor/mozjpeg/simd/mips/jsimd.c +0 -1143
  40. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jccolext-mmi.c +0 -455
  41. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jccolor-mmi.c +0 -148
  42. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcgray-mmi.c +0 -132
  43. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcgryext-mmi.c +0 -374
  44. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jcsample-mmi.c +0 -98
  45. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdcolext-mmi.c +0 -415
  46. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdcolor-mmi.c +0 -139
  47. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdmerge-mmi.c +0 -149
  48. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdmrgext-mmi.c +0 -615
  49. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jdsample-mmi.c +0 -304
  50. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jfdctfst-mmi.c +0 -255
  51. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jfdctint-mmi.c +0 -398
  52. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jidctfst-mmi.c +0 -395
  53. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jidctint-mmi.c +0 -571
  54. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jquanti-mmi.c +0 -124
  55. data/ext/image_pack/vendor/mozjpeg/simd/mips64/jsimd.c +0 -866
  56. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jccolext-altivec.c +0 -269
  57. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jccolor-altivec.c +0 -116
  58. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcgray-altivec.c +0 -111
  59. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcgryext-altivec.c +0 -228
  60. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jcsample-altivec.c +0 -159
  61. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdcolext-altivec.c +0 -276
  62. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdcolor-altivec.c +0 -106
  63. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdmerge-altivec.c +0 -130
  64. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdmrgext-altivec.c +0 -329
  65. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jdsample-altivec.c +0 -400
  66. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jfdctfst-altivec.c +0 -154
  67. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jfdctint-altivec.c +0 -258
  68. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jidctfst-altivec.c +0 -255
  69. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jidctint-altivec.c +0 -357
  70. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jquanti-altivec.c +0 -250
  71. data/ext/image_pack/vendor/mozjpeg/simd/powerpc/jsimd.c +0 -884
  72. data/ext/image_pack/vendor/mozjpeg/strtest.c +0 -170
  73. data/ext/image_pack/vendor/mozjpeg/tjbench.c +0 -1044
  74. data/ext/image_pack/vendor/mozjpeg/tjexample.c +0 -406
  75. data/ext/image_pack/vendor/mozjpeg/tjunittest.c +0 -961
  76. data/ext/image_pack/vendor/mozjpeg/tjutil.c +0 -70
  77. data/ext/image_pack/vendor/mozjpeg/transupp.c +0 -2373
  78. data/ext/image_pack/vendor/mozjpeg/turbojpeg-jni.c +0 -1259
  79. data/ext/image_pack/vendor/mozjpeg/turbojpeg.c +0 -2320
  80. data/ext/image_pack/vendor/mozjpeg/wrbmp.c +0 -552
  81. data/ext/image_pack/vendor/mozjpeg/wrgif.c +0 -580
  82. data/ext/image_pack/vendor/mozjpeg/wrjpgcom.c +0 -577
  83. data/ext/image_pack/vendor/mozjpeg/wrppm.c +0 -366
  84. data/ext/image_pack/vendor/mozjpeg/wrtarga.c +0 -258
  85. data/ext/image_pack/vendor/mozjpeg/yuvjpeg.c +0 -268
@@ -2,14 +2,27 @@
2
2
 
3
3
  module ImagePack
4
4
  class Configuration
5
- attr_accessor :execution,
6
- :direct_input_threshold,
7
- :direct_pixel_threshold,
8
- :max_pixels,
9
- :max_width,
10
- :max_height,
11
- :max_output_size,
12
- :max_input_size
5
+ SIZE_ATTRIBUTES = %i[
6
+ direct_input_threshold
7
+ direct_pixel_threshold
8
+ max_pixels
9
+ max_output_size
10
+ max_input_size
11
+ ].freeze
12
+
13
+ INT_ATTRIBUTES = %i[
14
+ max_width
15
+ max_height
16
+ ].freeze
17
+
18
+ attr_reader :execution,
19
+ :direct_input_threshold,
20
+ :direct_pixel_threshold,
21
+ :max_pixels,
22
+ :max_width,
23
+ :max_height,
24
+ :max_output_size,
25
+ :max_input_size
13
26
 
14
27
  def initialize
15
28
  @execution = :auto
@@ -21,5 +34,38 @@ module ImagePack
21
34
  @max_output_size = 256 * 1024 * 1024
22
35
  @max_input_size = 256 * 1024 * 1024
23
36
  end
37
+
38
+ def execution=(value)
39
+ unless ImagePack::EXECUTION_MODES.include?(value)
40
+ raise InvalidArgumentError, "execution must be one of #{ImagePack::EXECUTION_MODES}, got: #{value.inspect}"
41
+ end
42
+
43
+ if value == :offload && ImagePack.respond_to?(:offload_safe?) && !ImagePack.offload_safe?
44
+ raise UnsupportedError,
45
+ "execution: :offload is unavailable in this runtime; it requires Ruby >= 3.4.0 and IMAGE_PACK_DISABLE_OFFLOAD must not be set"
46
+ end
47
+
48
+ @execution = value
49
+ end
50
+
51
+ SIZE_ATTRIBUTES.each do |name|
52
+ define_method("#{name}=") do |value|
53
+ instance_variable_set("@#{name}", validate_nonnegative_integer!(name, value))
54
+ end
55
+ end
56
+
57
+ INT_ATTRIBUTES.each do |name|
58
+ define_method("#{name}=") do |value|
59
+ instance_variable_set("@#{name}", validate_nonnegative_integer!(name, value))
60
+ end
61
+ end
62
+
63
+ private
64
+
65
+ def validate_nonnegative_integer!(name, value)
66
+ return value if value.is_a?(Integer) && value >= 0
67
+
68
+ raise InvalidArgumentError, "#{name} must be an Integer >= 0, got: #{value.inspect}"
69
+ end
24
70
  end
25
71
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ImagePack
4
- VERSION = "0.2.2"
4
+ VERSION = "0.2.4"
5
5
  end
data/lib/image_pack.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- required = Gem::Version.new("3.4.0")
3
+ required = Gem::Version.new("3.1.0")
4
4
  current = Gem::Version.new(RUBY_VERSION)
5
5
 
6
6
  if current < required
7
7
  raise LoadError,
8
- "image_pack requires Ruby >= 3.4.0, got #{RUBY_VERSION}. " \
9
- "Reason: gem relies on RB_NOGVL_OFFLOAD_SAFE / Fiber::Scheduler hooks."
8
+ "image_pack requires Ruby >= 3.1.0, got #{RUBY_VERSION}. " \
9
+ "Ruby >= 3.4.0 is required only for execution: :offload."
10
10
  end
11
11
 
12
12
  require "pathname"
@@ -50,10 +50,15 @@ module ImagePack
50
50
  {
51
51
  version: VERSION,
52
52
  mozjpeg: defined?(NATIVE_MOZJPEG_VERSION) ? NATIVE_MOZJPEG_VERSION : nil,
53
- simd: defined?(NATIVE_SIMD) ? NATIVE_SIMD : nil
53
+ simd: defined?(NATIVE_SIMD) ? NATIVE_SIMD : nil,
54
+ offload_safe: offload_safe?
54
55
  }
55
56
  end
56
57
 
58
+ def offload_safe?
59
+ defined?(NATIVE_OFFLOAD_SAFE) && NATIVE_OFFLOAD_SAFE == true
60
+ end
61
+
57
62
  def compress_bytes(bytes, **options)
58
63
  raise InvalidArgumentError, "bytes must be a String" unless bytes.is_a?(String)
59
64
 
@@ -85,9 +90,15 @@ module ImagePack
85
90
  progressive: true,
86
91
  strip_metadata: false,
87
92
  execution: nil,
88
- cancellable: false)
93
+ cancellable: false,
94
+ strict: false)
95
+ validate_boolean!(:progressive, progressive)
96
+ validate_boolean!(:strip_metadata, strip_metadata)
97
+ validate_boolean!(:cancellable, cancellable)
98
+ validate_boolean!(:strict, strict)
89
99
  execution ||= configuration.execution
90
100
  validate_execution!(execution)
101
+ validate_execution_supported!(execution)
91
102
  validate_cancellable!(:lossless_optimize, execution, cancellable)
92
103
 
93
104
  normalized_input_kind = input_kind!(input)
@@ -100,7 +111,8 @@ module ImagePack
100
111
  strip_metadata ? 1 : 0,
101
112
  execution,
102
113
  cancellable ? 1 : 0,
103
- has_scheduler ? 1 : 0)
114
+ has_scheduler ? 1 : 0,
115
+ strict ? 1 : 0)
104
116
  end
105
117
 
106
118
  def compress(input,
@@ -112,16 +124,24 @@ module ImagePack
112
124
  progressive: false,
113
125
  strip_metadata: true,
114
126
  execution: nil,
115
- cancellable: false)
127
+ cancellable: false,
128
+ report: false,
129
+ strict: false)
116
130
  validate_algo!(algo)
117
131
  validate_min_ssim!(min_ssim)
118
- validate_mozjpeg_trellis!(mozjpeg_trellis)
132
+ validate_boolean!(:mozjpeg_trellis, mozjpeg_trellis)
133
+ validate_boolean!(:progressive, progressive)
134
+ validate_boolean!(:strip_metadata, strip_metadata)
135
+ validate_boolean!(:cancellable, cancellable)
136
+ validate_boolean!(:report, report)
137
+ validate_boolean!(:strict, strict)
119
138
  quality_was_given = !quality.nil?
120
139
  effective_quality = quality_was_given ? quality : DEFAULT_QUALITY
121
140
  effective_quality = 1 if min_ssim && !quality_was_given
122
141
  validate_quality!(effective_quality)
123
142
  execution ||= configuration.execution
124
143
  validate_execution!(execution)
144
+ validate_execution_supported!(execution)
125
145
  validate_cancellable!(algo, execution, cancellable)
126
146
 
127
147
  normalized_input_kind = input_kind!(input)
@@ -130,14 +150,16 @@ module ImagePack
130
150
 
131
151
  __compress_jpeg(input, normalized_input_kind,
132
152
  output, normalized_output_kind,
133
- ALGO_TO_NATIVE.fetch(algo), effective_quality.to_i,
153
+ ALGO_TO_NATIVE.fetch(algo), effective_quality,
134
154
  min_ssim ? min_ssim.to_f : 0.0,
135
155
  mozjpeg_trellis ? 1 : 0,
136
156
  progressive ? 1 : 0,
137
157
  strip_metadata ? 1 : 0,
138
158
  execution,
139
159
  cancellable ? 1 : 0,
140
- has_scheduler ? 1 : 0)
160
+ has_scheduler ? 1 : 0,
161
+ report ? 1 : 0,
162
+ strict ? 1 : 0)
141
163
  end
142
164
 
143
165
  def compress_pixels(buffer,
@@ -146,21 +168,37 @@ module ImagePack
146
168
  channels:,
147
169
  output: nil,
148
170
  algo: DEFAULT_ALGO,
149
- quality: DEFAULT_QUALITY,
171
+ quality: nil,
150
172
  min_ssim: nil,
173
+ mozjpeg_trellis: true,
151
174
  progressive: false,
152
175
  drop_alpha: nil,
176
+ exact_size: false,
153
177
  execution: nil,
154
- cancellable: false)
178
+ cancellable: false,
179
+ report: false,
180
+ strict: false)
181
+ validate_pixel_buffer!(buffer)
155
182
  validate_algo!(algo)
156
183
  validate_min_ssim!(min_ssim)
157
- validate_quality!(quality)
184
+ validate_boolean!(:mozjpeg_trellis, mozjpeg_trellis)
185
+ validate_boolean!(:progressive, progressive)
186
+ validate_drop_alpha!(drop_alpha)
187
+ validate_boolean!(:exact_size, exact_size)
188
+ validate_boolean!(:cancellable, cancellable)
189
+ validate_boolean!(:report, report)
190
+ validate_boolean!(:strict, strict)
191
+ quality_was_given = !quality.nil?
192
+ effective_quality = quality_was_given ? quality : DEFAULT_QUALITY
193
+ effective_quality = 1 if min_ssim && !quality_was_given
194
+ validate_quality!(effective_quality)
158
195
  validate_dimensions!(width, height, channels)
159
196
  execution ||= configuration.execution
160
197
  validate_execution!(execution)
198
+ validate_execution_supported!(execution)
161
199
  validate_cancellable!(algo, execution, cancellable)
162
200
 
163
- if channels.to_i == 4
201
+ if channels == 4
164
202
  case drop_alpha
165
203
  when nil
166
204
  warn "ImagePack.compress_pixels: RGBA input has its alpha channel " \
@@ -175,19 +213,23 @@ module ImagePack
175
213
  normalized_output_kind = output_kind!(output)
176
214
  has_scheduler = fiber_scheduler_active?
177
215
 
178
- if min_ssim && channels.to_i == 4
216
+ if min_ssim && channels == 4
179
217
  raise UnsupportedError, "min_ssim is not supported for RGBA input"
180
218
  end
181
219
 
182
220
  __compress_pixels(buffer,
183
- width.to_i, height.to_i, channels.to_i,
221
+ width, height, channels,
184
222
  output, normalized_output_kind,
185
- ALGO_TO_NATIVE.fetch(algo), quality.to_i,
223
+ ALGO_TO_NATIVE.fetch(algo), effective_quality,
186
224
  min_ssim ? min_ssim.to_f : 0.0,
225
+ mozjpeg_trellis ? 1 : 0,
187
226
  progressive ? 1 : 0,
227
+ exact_size ? 1 : 0,
188
228
  execution,
189
229
  cancellable ? 1 : 0,
190
- has_scheduler ? 1 : 0)
230
+ has_scheduler ? 1 : 0,
231
+ report ? 1 : 0,
232
+ strict ? 1 : 0)
191
233
  end
192
234
 
193
235
  def inspect_image(input)
@@ -224,7 +266,7 @@ module ImagePack
224
266
  return :return_string if output.nil?
225
267
  return :path if output.is_a?(String) || output.is_a?(Pathname)
226
268
 
227
- raise InvalidArgumentError, "output must be nil, String path, or Pathname in v0.2.2"
269
+ raise InvalidArgumentError, "output must be nil, String path, or Pathname"
228
270
  end
229
271
 
230
272
  def validate_algo!(algo)
@@ -246,11 +288,16 @@ module ImagePack
246
288
  raise InvalidArgumentError, "min_ssim must be Numeric > 0.0 and <= 1.0, got: #{min_ssim.inspect}"
247
289
  end
248
290
 
249
-
250
- def validate_mozjpeg_trellis!(value)
291
+ def validate_boolean!(name, value)
251
292
  return if value == true || value == false
252
293
 
253
- raise InvalidArgumentError, "mozjpeg_trellis must be true or false, got: #{value.inspect}"
294
+ raise InvalidArgumentError, "#{name} must be true or false, got: #{value.inspect}"
295
+ end
296
+
297
+ def validate_drop_alpha!(value)
298
+ return if value.nil? || value == true || value == false
299
+
300
+ raise InvalidArgumentError, "drop_alpha must be true, false, or nil, got: #{value.inspect}"
254
301
  end
255
302
 
256
303
  def validate_execution!(execution)
@@ -259,12 +306,27 @@ module ImagePack
259
306
  raise InvalidArgumentError, "execution must be one of #{EXECUTION_MODES}, got: #{execution.inspect}"
260
307
  end
261
308
 
309
+ def validate_execution_supported!(execution)
310
+ return unless execution == :offload
311
+ return if offload_safe?
312
+
313
+ raise UnsupportedError,
314
+ "execution: :offload is unavailable in this runtime; it requires Ruby >= 3.4.0 and IMAGE_PACK_DISABLE_OFFLOAD must not be set"
315
+ end
316
+
262
317
  def validate_dimensions!(width, height, channels)
263
- raise InvalidArgumentError, "width must be > 0" unless width.is_a?(Integer) && width.positive?
264
- raise InvalidArgumentError, "height must be > 0" unless height.is_a?(Integer) && height.positive?
318
+ raise InvalidArgumentError, "width must be Integer > 0" unless width.is_a?(Integer) && width.positive?
319
+ raise InvalidArgumentError, "height must be Integer > 0" unless height.is_a?(Integer) && height.positive?
265
320
  raise InvalidArgumentError, "channels must be 1, 3 or 4" unless [1, 3, 4].include?(channels)
266
321
  end
267
322
 
323
+ def validate_pixel_buffer!(buffer)
324
+ return if buffer.is_a?(String)
325
+ return if defined?(IO::Buffer) && buffer.is_a?(IO::Buffer)
326
+
327
+ raise InvalidArgumentError, "pixel buffer must be a String or IO::Buffer"
328
+ end
329
+
268
330
  def validate_cancellable!(_algo, execution, cancellable)
269
331
  return unless cancellable
270
332
  return unless execution == :direct
@@ -274,7 +336,7 @@ module ImagePack
274
336
  end
275
337
 
276
338
  def fiber_scheduler_active?
277
- Fiber.respond_to?(:scheduler) && !Fiber.scheduler.nil?
339
+ offload_safe? && Fiber.respond_to?(:scheduler) && !Fiber.scheduler.nil?
278
340
  end
279
341
  end
280
342
  end
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: image_pack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roman Haydarov
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-06-17 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: rake
@@ -79,9 +80,9 @@ dependencies:
79
80
  - - "~>"
80
81
  - !ruby/object:Gem::Version
81
82
  version: '2.21'
82
- description: Single API, vendored pure-C MozJPEG/libjpeg codec, no tempfiles, Ruby
83
- 3.4 Fiber::Scheduler-aware native execution. Ships vendored C sources no system
84
- libjpeg, git, or CMake required.
83
+ description: Single API, vendored pure-C MozJPEG/libjpeg codec, in-memory compression
84
+ and atomic file output, Ruby 3.1+ native JPEG execution; Ruby 3.4+ enables Fiber::Scheduler-aware
85
+ offload. Ships vendored C sources — no system libjpeg, git, or CMake required.
85
86
  email:
86
87
  - romnhajdarov@gmail.com
87
88
  executables: []
@@ -95,27 +96,25 @@ files:
95
96
  - THIRD_PARTY_NOTICES.md
96
97
  - ext/image_pack/extconf.rb
97
98
  - ext/image_pack/image_pack.c
99
+ - ext/image_pack/mozjpeg_sources.rb
98
100
  - ext/image_pack/vendor/.vendored
101
+ - ext/image_pack/vendor/mozjpeg/BUILDING.md
99
102
  - ext/image_pack/vendor/mozjpeg/BUILDING.txt
100
103
  - ext/image_pack/vendor/mozjpeg/CMakeLists.txt
104
+ - ext/image_pack/vendor/mozjpeg/CODE_OF_CONDUCT.md
105
+ - ext/image_pack/vendor/mozjpeg/ChangeLog.md
101
106
  - ext/image_pack/vendor/mozjpeg/LICENSE.md
102
107
  - ext/image_pack/vendor/mozjpeg/README-mozilla.txt
103
108
  - ext/image_pack/vendor/mozjpeg/README-turbo.txt
104
- - ext/image_pack/vendor/mozjpeg/README.ijg
105
109
  - ext/image_pack/vendor/mozjpeg/README.md
106
110
  - ext/image_pack/vendor/mozjpeg/cderror.h
107
- - ext/image_pack/vendor/mozjpeg/cdjpeg.c
108
111
  - ext/image_pack/vendor/mozjpeg/cdjpeg.h
109
- - ext/image_pack/vendor/mozjpeg/cjpeg.c
110
112
  - ext/image_pack/vendor/mozjpeg/cmyk.h
111
113
  - ext/image_pack/vendor/mozjpeg/coderules.txt
112
114
  - ext/image_pack/vendor/mozjpeg/croptest.in
113
- - ext/image_pack/vendor/mozjpeg/djpeg.c
114
115
  - ext/image_pack/vendor/mozjpeg/example.txt
115
- - ext/image_pack/vendor/mozjpeg/jaricom.c
116
116
  - ext/image_pack/vendor/mozjpeg/jcapimin.c
117
117
  - ext/image_pack/vendor/mozjpeg/jcapistd.c
118
- - ext/image_pack/vendor/mozjpeg/jcarith.c
119
118
  - ext/image_pack/vendor/mozjpeg/jccoefct.c
120
119
  - ext/image_pack/vendor/mozjpeg/jccolext.c
121
120
  - ext/image_pack/vendor/mozjpeg/jccolor.c
@@ -137,14 +136,10 @@ files:
137
136
  - ext/image_pack/vendor/mozjpeg/jcphuff.c
138
137
  - ext/image_pack/vendor/mozjpeg/jcprepct.c
139
138
  - ext/image_pack/vendor/mozjpeg/jcsample.c
140
- - ext/image_pack/vendor/mozjpeg/jcstest.c
141
139
  - ext/image_pack/vendor/mozjpeg/jctrans.c
142
140
  - ext/image_pack/vendor/mozjpeg/jdapimin.c
143
141
  - ext/image_pack/vendor/mozjpeg/jdapistd.c
144
- - ext/image_pack/vendor/mozjpeg/jdarith.c
145
- - ext/image_pack/vendor/mozjpeg/jdatadst-tj.c
146
142
  - ext/image_pack/vendor/mozjpeg/jdatadst.c
147
- - ext/image_pack/vendor/mozjpeg/jdatasrc-tj.c
148
143
  - ext/image_pack/vendor/mozjpeg/jdatasrc.c
149
144
  - ext/image_pack/vendor/mozjpeg/jdcoefct.c
150
145
  - ext/image_pack/vendor/mozjpeg/jdcoefct.h
@@ -189,8 +184,6 @@ files:
189
184
  - ext/image_pack/vendor/mozjpeg/jpegcomp.h
190
185
  - ext/image_pack/vendor/mozjpeg/jpegint.h
191
186
  - ext/image_pack/vendor/mozjpeg/jpeglib.h
192
- - ext/image_pack/vendor/mozjpeg/jpegtran.c
193
- - ext/image_pack/vendor/mozjpeg/jpegyuv.c
194
187
  - ext/image_pack/vendor/mozjpeg/jquant1.c
195
188
  - ext/image_pack/vendor/mozjpeg/jquant2.c
196
189
  - ext/image_pack/vendor/mozjpeg/jsimd.h
@@ -201,18 +194,6 @@ files:
201
194
  - ext/image_pack/vendor/mozjpeg/jversion.h.in
202
195
  - ext/image_pack/vendor/mozjpeg/libjpeg.map.in
203
196
  - ext/image_pack/vendor/mozjpeg/libjpeg.txt
204
- - ext/image_pack/vendor/mozjpeg/rdbmp.c
205
- - ext/image_pack/vendor/mozjpeg/rdcolmap.c
206
- - ext/image_pack/vendor/mozjpeg/rdgif.c
207
- - ext/image_pack/vendor/mozjpeg/rdjpeg.c
208
- - ext/image_pack/vendor/mozjpeg/rdjpgcom.c
209
- - ext/image_pack/vendor/mozjpeg/rdpng.c
210
- - ext/image_pack/vendor/mozjpeg/rdppm.c
211
- - ext/image_pack/vendor/mozjpeg/rdswitch.c
212
- - ext/image_pack/vendor/mozjpeg/rdtarga.c
213
- - ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jccolext-neon.c
214
- - ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jchuff-neon.c
215
- - ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jsimd.c
216
197
  - ext/image_pack/vendor/mozjpeg/simd/arm/aarch32/jsimd_neon.S
217
198
  - ext/image_pack/vendor/mozjpeg/simd/arm/aarch64/jccolext-neon.c
218
199
  - ext/image_pack/vendor/mozjpeg/simd/arm/aarch64/jchuff-neon.c
@@ -293,29 +274,11 @@ files:
293
274
  - ext/image_pack/vendor/mozjpeg/simd/i386/jquantf-sse2.asm
294
275
  - ext/image_pack/vendor/mozjpeg/simd/i386/jquanti-avx2.asm
295
276
  - ext/image_pack/vendor/mozjpeg/simd/i386/jquanti-sse2.asm
296
- - ext/image_pack/vendor/mozjpeg/simd/i386/jsimd.c
297
277
  - ext/image_pack/vendor/mozjpeg/simd/i386/jsimdcpu.asm
298
278
  - ext/image_pack/vendor/mozjpeg/simd/jsimd.h
299
- - ext/image_pack/vendor/mozjpeg/simd/mips/jsimd.c
300
279
  - ext/image_pack/vendor/mozjpeg/simd/mips/jsimd_dspr2.S
301
280
  - ext/image_pack/vendor/mozjpeg/simd/mips/jsimd_dspr2_asm.h
302
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jccolext-mmi.c
303
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jccolor-mmi.c
304
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jcgray-mmi.c
305
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jcgryext-mmi.c
306
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jcsample-mmi.c
307
281
  - ext/image_pack/vendor/mozjpeg/simd/mips64/jcsample.h
308
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jdcolext-mmi.c
309
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jdcolor-mmi.c
310
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jdmerge-mmi.c
311
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jdmrgext-mmi.c
312
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jdsample-mmi.c
313
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jfdctfst-mmi.c
314
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jfdctint-mmi.c
315
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jidctfst-mmi.c
316
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jidctint-mmi.c
317
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jquanti-mmi.c
318
- - ext/image_pack/vendor/mozjpeg/simd/mips64/jsimd.c
319
282
  - ext/image_pack/vendor/mozjpeg/simd/mips64/jsimd_mmi.h
320
283
  - ext/image_pack/vendor/mozjpeg/simd/mips64/loongson-mmintrin.h
321
284
  - ext/image_pack/vendor/mozjpeg/simd/nasm/jcolsamp.inc
@@ -323,23 +286,7 @@ files:
323
286
  - ext/image_pack/vendor/mozjpeg/simd/nasm/jsimdcfg.inc
324
287
  - ext/image_pack/vendor/mozjpeg/simd/nasm/jsimdcfg.inc.h
325
288
  - ext/image_pack/vendor/mozjpeg/simd/nasm/jsimdext.inc
326
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jccolext-altivec.c
327
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jccolor-altivec.c
328
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jcgray-altivec.c
329
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jcgryext-altivec.c
330
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jcsample-altivec.c
331
289
  - ext/image_pack/vendor/mozjpeg/simd/powerpc/jcsample.h
332
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jdcolext-altivec.c
333
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jdcolor-altivec.c
334
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jdmerge-altivec.c
335
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jdmrgext-altivec.c
336
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jdsample-altivec.c
337
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jfdctfst-altivec.c
338
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jfdctint-altivec.c
339
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jidctfst-altivec.c
340
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jidctint-altivec.c
341
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jquanti-altivec.c
342
- - ext/image_pack/vendor/mozjpeg/simd/powerpc/jsimd.c
343
290
  - ext/image_pack/vendor/mozjpeg/simd/powerpc/jsimd_altivec.h
344
291
  - ext/image_pack/vendor/mozjpeg/simd/x86_64/jccolext-avx2.asm
345
292
  - ext/image_pack/vendor/mozjpeg/simd/x86_64/jccolext-sse2.asm
@@ -377,30 +324,16 @@ files:
377
324
  - ext/image_pack/vendor/mozjpeg/simd/x86_64/jquanti-sse2.asm
378
325
  - ext/image_pack/vendor/mozjpeg/simd/x86_64/jsimd.c
379
326
  - ext/image_pack/vendor/mozjpeg/simd/x86_64/jsimdcpu.asm
380
- - ext/image_pack/vendor/mozjpeg/strtest.c
381
327
  - ext/image_pack/vendor/mozjpeg/structure.txt
382
- - ext/image_pack/vendor/mozjpeg/tjbench.c
383
328
  - ext/image_pack/vendor/mozjpeg/tjbenchtest.in
384
329
  - ext/image_pack/vendor/mozjpeg/tjbenchtest.java.in
385
- - ext/image_pack/vendor/mozjpeg/tjexample.c
386
330
  - ext/image_pack/vendor/mozjpeg/tjexampletest.in
387
331
  - ext/image_pack/vendor/mozjpeg/tjexampletest.java.in
388
- - ext/image_pack/vendor/mozjpeg/tjunittest.c
389
- - ext/image_pack/vendor/mozjpeg/tjutil.c
390
332
  - ext/image_pack/vendor/mozjpeg/tjutil.h
391
- - ext/image_pack/vendor/mozjpeg/transupp.c
392
333
  - ext/image_pack/vendor/mozjpeg/transupp.h
393
- - ext/image_pack/vendor/mozjpeg/turbojpeg-jni.c
394
- - ext/image_pack/vendor/mozjpeg/turbojpeg.c
395
334
  - ext/image_pack/vendor/mozjpeg/turbojpeg.h
396
335
  - ext/image_pack/vendor/mozjpeg/usage.txt
397
336
  - ext/image_pack/vendor/mozjpeg/wizard.txt
398
- - ext/image_pack/vendor/mozjpeg/wrbmp.c
399
- - ext/image_pack/vendor/mozjpeg/wrgif.c
400
- - ext/image_pack/vendor/mozjpeg/wrjpgcom.c
401
- - ext/image_pack/vendor/mozjpeg/wrppm.c
402
- - ext/image_pack/vendor/mozjpeg/wrtarga.c
403
- - ext/image_pack/vendor/mozjpeg/yuvjpeg.c
404
337
  - lib/image_pack.rb
405
338
  - lib/image_pack/configuration.rb
406
339
  - lib/image_pack/errors.rb
@@ -412,6 +345,7 @@ metadata:
412
345
  homepage_uri: https://github.com/roman-haidarov/image_pack
413
346
  source_code_uri: https://github.com/roman-haidarov/image_pack
414
347
  changelog_uri: https://github.com/roman-haidarov/image_pack/blob/main/CHANGELOG.md
348
+ post_install_message:
415
349
  rdoc_options: []
416
350
  require_paths:
417
351
  - lib
@@ -419,14 +353,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
419
353
  requirements:
420
354
  - - ">="
421
355
  - !ruby/object:Gem::Version
422
- version: 3.4.0
356
+ version: 3.1.0
423
357
  required_rubygems_version: !ruby/object:Gem::Requirement
424
358
  requirements:
425
359
  - - ">="
426
360
  - !ruby/object:Gem::Version
427
361
  version: '0'
428
362
  requirements: []
429
- rubygems_version: 3.6.7
363
+ rubygems_version: 3.3.27
364
+ signing_key:
430
365
  specification_version: 4
431
366
  summary: 'Ruby-native pure-C JPEG runtime: MozJPEG/libjpeg'
432
367
  test_files: []