carrierwave-vips 0.9.1 → 0.9.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/carrierwave/vips.rb +10 -15
  2. metadata +2 -2
@@ -181,40 +181,36 @@ module CarrierWave
181
181
  private
182
182
 
183
183
  def resize_image(image, width, height, min_or_max = :min)
184
-
185
184
  ratio = get_ratio image, width, height, min_or_max
186
-
187
185
  if jpeg? # find the shrink ratio for loading
188
- shrink_factors = [8,4,2,1]
189
- shrink_factor = nil
190
- shrink_factors.each { |sf| shrink_factor = sf if ratio < 1.0 / sf }
191
- shrink_factor ||= shrink_factors[-1]
192
- image = VIPS::Image.jpeg current_path, shrink_factor: shrink_factor, sequential: true
186
+ shrink_factor = [8, 4, 2, 1].find {|sf| 1.0 / ratio >= sf }
187
+ shrink_factor = 1 if shrink_factor == nil
188
+ image = VIPS::Image.jpeg current_path,
189
+ :shrink_factor => shrink_factor, :sequential => true
193
190
  ratio = get_ratio image, width, height, min_or_max
194
191
  elsif png?
195
192
  image = VIPS::Image.png current_path, :sequential => true
196
193
  end
197
-
198
194
  if ratio > 1
199
195
  image = image.affinei_resize :nearest, ratio
200
- elsif ratio < 1
196
+ else
201
197
  if ratio <= 0.5
202
- image = image.shrink((1/ratio).floor)
198
+ factor = (1.0 / ratio).floor
199
+ image = image.shrink(factor)
200
+ image = image.tile_cache(image.x_size, 1, 30)
203
201
  ratio = get_ratio image, width, height, min_or_max
204
202
  end
205
203
  image = image.affinei_resize :bilinear, ratio unless ratio == 1
206
- image = image.tile_cache(image.x_size, 1, 30)
207
204
  image = image.conv SHARPEN_MASK
208
205
  end
209
-
210
206
  image
211
-
212
207
  end
213
208
 
214
209
  def get_ratio(image, width,height, min_or_max = :min)
215
210
  width_ratio = width.to_f / image.x_size
216
211
  height_ratio = height.to_f / image.y_size
217
- [width_ratio, height_ratio].send(min_or_max)
212
+ ratio = [width_ratio, height_ratio].send(min_or_max)
213
+ ratio
218
214
  end
219
215
 
220
216
  def jpeg?(path = current_path)
@@ -224,7 +220,6 @@ module CarrierWave
224
220
  def png?(path = current_path)
225
221
  path =~ /.*png$/i
226
222
  end
227
-
228
223
 
229
224
  end # Vips
230
225
  end # CarrierWave
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carrierwave-vips
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1
4
+ version: 0.9.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-04 00:00:00.000000000 Z
12
+ date: 2012-08-01 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Adds VIPS support to CarrierWave
15
15
  email: eltiare@github.com