| @@ -1,5 +1,7 @@ | |||||
| class Base64ImageConverter | class Base64ImageConverter | ||||
| BASE64_HEAD = 'data:image/jpeg;base64,'.freeze | |||||
| # BASE64_HEAD = 'data:image/jpeg;base64,'.freeze | |||||
| BASE64_HEAD_ARRAY = ['data:image/jpeg;base64,', 'data:image/jpg;base64,', | |||||
| 'data:image/png;base64,', 'data:image/gif;base64,'] | |||||
| Error = Class.new(StandardError) | Error = Class.new(StandardError) | ||||
| OutLimit = Class.new(Error) | OutLimit = Class.new(Error) | ||||
| @@ -27,11 +29,20 @@ class Base64ImageConverter | |||||
| private | private | ||||
| def valid_base64?(data) | def valid_base64?(data) | ||||
| data&.start_with?(BASE64_HEAD) | |||||
| # data&.start_with?(BASE64_HEAD) | |||||
| BASE64_HEAD_ARRAY.include? base64_head_data(data) | |||||
| end | |||||
| def base64_head_data(data) | |||||
| data&.split(',')[0] + ',' | |||||
| end | |||||
| def base64_head(data) | |||||
| valid_base64?(data) ? base64_head_data(data) : '' | |||||
| end | end | ||||
| def image_data(data) | def image_data(data) | ||||
| data[BASE64_HEAD.size..-1] | |||||
| data[base64_head(data).size..-1] | |||||
| end | end | ||||
| def size_limit | def size_limit | ||||
| @@ -74,4 +85,4 @@ class Base64ImageConverter | |||||
| data[0,2] == 0x89.chr + 80.chr | data[0,2] == 0x89.chr + 80.chr | ||||
| end | end | ||||
| end | end | ||||
| end | |||||
| end | |||||