diff --git a/lib/load_ico.rb b/lib/load_ico.rb index 2c48d766..a8c3061d 100644 --- a/lib/load_ico.rb +++ b/lib/load_ico.rb @@ -2,6 +2,7 @@ module LoadIco BI_RGB = 0 + PNG_SIGNATURE = "\x89PNG".b module_function @@ -42,6 +43,8 @@ module LoadIco raise ArgumentError, 'Unable to load' unless image_data_bytes && image_data_bytes.bytesize == best_entry[:size] + return Vips::Image.new_from_buffer(image_data_bytes, '') if image_data_bytes.start_with?(PNG_SIGNATURE) + image = load_image_entry(image_data_bytes, best_entry[:width], best_entry[:height]) raise ArgumentError, 'Unable to load' unless image