def generate_data_uri(target_image, asset_dir_key = nil)
Helpers.require_library 'base64'
ext = File.extname(target_image)[1..-1]
mimetype = 'image/' + ext
mimetype = "#{mimetype}+xml" if ext == 'svg'
if asset_dir_key
image_path = normalize_system_path(target_image, @document.attr(asset_dir_key), nil, :target_name => 'image')
else
image_path = normalize_system_path(target_image)
end
if !File.readable? image_path
puts "asciidoctor: WARNING: image to embed not found or not readable: #{image_path}"
return "data:#{mimetype}:base64,"
end
bindata = nil
if IO.respond_to? :binread
bindata = IO.binread(image_path)
else
bindata = File.open(image_path, 'rb') {|file| file.read }
end
"data:#{mimetype};base64,#{Base64.encode64(bindata).delete("\n")}"
end