rszr 1.1.0 → 1.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 453bbac498bb376737ac50b776a9d1824cbb0f2338753b82c09c36ef08bc152b
4
- data.tar.gz: 66941eca0be0d49922627be9329ca6c623686809094be55b80fc490f8dd59290
3
+ metadata.gz: c2a807383b99cb581c84c5ba8ae9f4b3c22afd8e2402839d12bbe053d7121886
4
+ data.tar.gz: 205b2a3c639a0c3ad58bf02e1b8c0d66511accc75f8553a210d8f40d5317725f
5
5
  SHA512:
6
- metadata.gz: ed7559dfe4f2a754f9f4b46fe0cf3b88f1003d8c055dc38d5eb9335f49ff8656689464fbb8f0c0756466ab9dd6af775e9bb12add63f29d167a20e832354d3adc
7
- data.tar.gz: 49b195f7d27005a81175ae467e0f7f05d974b020db07a90a1f34999df2dd69cd96591d2a96d7ae07872886074dbc937e8d53bf99380fa0bf5d94181065461682
6
+ metadata.gz: bd6a39ed7d2e84b8a45a083202731adb5b4a0530c9b2601f1c0835ec0da7fe2f4e9ffd93d2cf3459956ecefbe7ffebaf1686ebabb7dea575293cbe2020b4aa63
7
+ data.tar.gz: 4fbe1b757974fbb2b4ded496e3f5ac4a4111eb2109242040ed094b1a710ae59487f679954ed5dbdbaef44b04aa44c38f89d6ba7f0f3d0a10a4d37946096163ca
data/README.md CHANGED
@@ -162,9 +162,22 @@ To enable autorotation by default:
162
162
  Rszr.autorotate = true
163
163
  ```
164
164
 
165
+ ### Creating interlaced PNG and progressive JPEG images
166
+
167
+ In order to save interlaced PNGs and progressive JPEGs, set the `interlace` option to `true`:
168
+
169
+ ```ruby
170
+ image.save('interlaced.png', interlace: true)
171
+ ```
172
+
173
+ As of v1.8.0, `imlib2` doesn't support saving progressive JPEG images yet,
174
+ but a [patch](https://git.enlightenment.org/legacy/imlib2.git/commit/?id=37e8c9578897259211284d3590cc38b7f6a718dc) has been submitted.
175
+
176
+ For EL8, there are pre-built RPMs provided by the [onrooby repo](http://downloads.onrooby.com/repo/el/8/x86_64/).
177
+
165
178
  ## Rails / ActiveStorage interface
166
179
 
167
- Rszr provides a drop-in interface to the `image_processing` gem.
180
+ Rszr provides a drop-in interface to the [image_processing](https://github.com/janko/image_processing) gem.
168
181
  It is faster than both `mini_magick` and `vips` and way easier to install than the latter.
169
182
 
170
183
  ```ruby
data/ext/rszr/image.c CHANGED
@@ -165,7 +165,6 @@ static VALUE rszr_image__pixel_get(VALUE self, VALUE rb_x, VALUE rb_y)
165
165
  return rb_rgba;
166
166
  }
167
167
 
168
-
169
168
  /*
170
169
  static VALUE rszr_image_get_quality(VALUE self)
171
170
  {
@@ -205,6 +204,7 @@ static VALUE rszr_image_set_quality(VALUE self, VALUE rb_quality)
205
204
  }
206
205
  */
207
206
 
207
+
208
208
  static VALUE rszr_image_dup(VALUE self)
209
209
  {
210
210
  rszr_image_handle * handle;
@@ -445,7 +445,7 @@ static VALUE rszr_image__crop(VALUE self, VALUE bang, VALUE rb_x, VALUE rb_y, VA
445
445
  }
446
446
 
447
447
 
448
- static VALUE rszr_image__save(VALUE self, VALUE rb_path, VALUE rb_format, VALUE rb_quality)
448
+ static VALUE rszr_image__save(VALUE self, VALUE rb_path, VALUE rb_format, VALUE rb_quality, VALUE rb_interlace)
449
449
  {
450
450
  rszr_image_handle * handle;
451
451
  char * path;
@@ -463,6 +463,11 @@ static VALUE rszr_image__save(VALUE self, VALUE rb_path, VALUE rb_format, VALUE
463
463
  imlib_image_set_format(format);
464
464
  if (quality)
465
465
  imlib_image_attach_data_value("quality", NULL, quality, NULL);
466
+
467
+ imlib_image_remove_attached_data_value("interlacing");
468
+ if (RTEST(rb_interlace))
469
+ imlib_image_attach_data_value("interlacing", NULL, 1, NULL);
470
+
466
471
  imlib_save_image_with_error_return(path, &save_error);
467
472
 
468
473
  if (save_error) {
@@ -503,7 +508,7 @@ void Init_rszr_image()
503
508
  rb_define_private_method(cImage, "_sharpen!", rszr_image__sharpen_bang, 1);
504
509
  rb_define_private_method(cImage, "_pixel", rszr_image__pixel_get, 2);
505
510
 
506
- rb_define_private_method(cImage, "_save", rszr_image__save, 3);
511
+ rb_define_private_method(cImage, "_save", rszr_image__save, 4);
507
512
  }
508
513
 
509
514
  #endif
data/lib/rszr/image.rb CHANGED
@@ -148,11 +148,11 @@ module Rszr
148
148
 
149
149
  include Transformations
150
150
 
151
- def save(path, format: nil, quality: nil)
151
+ def save(path, format: nil, quality: nil, interlace: false)
152
152
  format ||= format_from_filename(path) || self.format || 'jpg'
153
153
  raise ArgumentError, "invalid quality #{quality.inspect}" if quality && !(0..100).cover?(quality)
154
154
  ensure_path_is_writable(path)
155
- _save(path.to_s, format.to_s, quality)
155
+ _save(path.to_s, format.to_s, quality, interlace)
156
156
  end
157
157
 
158
158
  def save_data(format: nil, quality: nil)
data/lib/rszr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rszr
2
- VERSION = '1.1.0'
2
+ VERSION = '1.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rszr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthias Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-09 00:00:00.000000000 Z
11
+ date: 2022-03-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Fast image resizer - do one thing and do it fast.
14
14
  email: