mirror of
https://github.com/docusealco/docuseal
synced 2026-11-11 07:42:32 -05:00
adjust load vips
This commit is contained in:
1 parent
de1af49348
commit
5432978c0d
1 file changed
+18
-8
+18
-8
@@ -1,23 +1,33 @@
|
|||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module ImageUtils
|
module ImageUtils
|
||||||
|
PNG_REGEXP = %r{\Aimage/(?:png|apng|vnd\.mozilla\.apng)\z}
|
||||||
|
JPEG_REGEXP = %r{\Aimage/(?:jpeg|jpg|pjpeg)\z}
|
||||||
ICO_REGEXP = %r{\Aimage/(?:x-icon|vnd\.microsoft\.icon)\z}
|
ICO_REGEXP = %r{\Aimage/(?:x-icon|vnd\.microsoft\.icon)\z}
|
||||||
BMP_REGEXP = %r{\Aimage/(?:bmp|x-bmp|x-ms-bmp)\z}
|
BMP_REGEXP = %r{\Aimage/(?:bmp|x-bmp|x-ms-bmp)\z}
|
||||||
|
|
||||||
|
UnsupportedFormat = Class.new(StandardError)
|
||||||
|
|
||||||
module_function
|
module_function
|
||||||
|
|
||||||
def load_vips(data, content_type: nil, autorot: false)
|
def load_vips(data, content_type: nil, autorot: false)
|
||||||
content_type ||= Marcel::MimeType.for(data)
|
content_type ||= Marcel::MimeType.for(data)
|
||||||
|
|
||||||
if ICO_REGEXP.match?(content_type)
|
image =
|
||||||
LoadIco.call(data)
|
case content_type
|
||||||
elsif BMP_REGEXP.match?(content_type)
|
when PNG_REGEXP
|
||||||
LoadBmp.call(data)
|
Vips::Image.pngload_buffer(data)
|
||||||
else
|
when JPEG_REGEXP
|
||||||
image = Vips::Image.new_from_buffer(data, '')
|
Vips::Image.jpegload_buffer(data)
|
||||||
|
when ICO_REGEXP
|
||||||
|
LoadIco.call(data)
|
||||||
|
when BMP_REGEXP
|
||||||
|
LoadBmp.call(data)
|
||||||
|
else
|
||||||
|
raise UnsupportedFormat, content_type.to_s
|
||||||
|
end
|
||||||
|
|
||||||
autorot ? image.autorot : image
|
autorot ? image.autorot : image
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def blank?(image)
|
def blank?(image)
|
||||||
|
|||||||
Reference in new issue
Block a user