Skip to content

Commit 770aac9

Browse files
committed
Added support for displaying ruby-vips images
1 parent 76c84d6 commit 770aac9

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

lib/iruby/display.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,20 @@ def format(mime = nil, &block)
264264
[format == 'PNG' ? 'image/png' : 'image/jpeg', obj.to_blob { |i| i.format = format }]
265265
end
266266

267+
match do |obj|
268+
defined?(Vips::Image) && Vips::Image === obj
269+
end
270+
format do |obj|
271+
# handles Vips::Error, vips_image_get: field "vips-loader" not found
272+
loader = obj.get('vips-loader') rescue nil
273+
if loader == 'jpegload'
274+
['image/jpeg', obj.write_to_buffer('.jpg')]
275+
else
276+
# falls back to png for other/unknown types
277+
['image/png', obj.write_to_buffer('.png')]
278+
end
279+
end
280+
267281
type { Gruff::Base }
268282
format 'image/png', &:to_blob
269283

0 commit comments

Comments
 (0)