class RemoveBg::CompositeResult
Handles image composition for larger images (over 10MP) where transparency is required. @see RemoveBg::Result
Public Instance Methods
save_zip(file_path, overwrite: false)
click to toggle source
Saves the ZIP archive containing the alpha.png and color.jpg files (useful if you want to handle composition yourself) @param file_path [string] @param overwrite [boolean] Overwrite any existing file at the specified path @return [nil]
# File lib/remove_bg/composite_result.rb, line 15 def save_zip(file_path, overwrite: false) if File.exist?(file_path) && !overwrite raise FileOverwriteError.new(file_path) end FileUtils.cp(download, file_path) end
Private Instance Methods
alpha_file()
click to toggle source
# File lib/remove_bg/composite_result.rb, line 40 def alpha_file @alpha_file ||= binary_tempfile(["alpha", ".png"]) end
binary_tempfile(basename)
click to toggle source
# File lib/remove_bg/composite_result.rb, line 61 def binary_tempfile(basename) Tempfile.new(basename).tap { |file| file.binmode } end
color_file()
click to toggle source
# File lib/remove_bg/composite_result.rb, line 36 def color_file @color_file ||= binary_tempfile(["color", ".jpg"]) end
compose_to_file(destination)
click to toggle source
# File lib/remove_bg/composite_result.rb, line 44 def compose_to_file(destination) extract_parts ImageComposer.new.compose( color_file: color_file, alpha_file: alpha_file, destination_path: destination.path ) end
composite_file()
click to toggle source
# File lib/remove_bg/composite_result.rb, line 29 def composite_file @composite_file ||= begin binary_tempfile(["composed", ".png"]) .tap { |file| compose_to_file(file) } end end
extract_parts()
click to toggle source
# File lib/remove_bg/composite_result.rb, line 54 def extract_parts Zip::File.open(download) do |zf| zf.find_entry("color.jpg").extract(color_file.path) { true } zf.find_entry("alpha.png").extract(alpha_file.path) { true } end end
image_file()
click to toggle source
# File lib/remove_bg/composite_result.rb, line 25 def image_file composite_file end