def update_size
png_file = Tempfile.new(["rabbit-loader-gimp-png", ".png"])
png_path = png_file.path
clip_to_image = 1
merge_type = clip_to_image
command = <<-COMMAND
(let ((image (car (gimp-file-load RUN-NONINTERACTIVE
"#{@filename}" "#{@filename}"))))
(gimp-file-save RUN-NONINTERACTIVE image "#{png_path}")
(gimp-image-delete image))
COMMAND
args = [
"--no-interface",
"--batch-interpreter", "plug-in-script-fu-eval",
"--batch", command,
"--batch", "(gimp-quit TRUE)",
]
if GIMP_COMMANDS.any? {|gimp| run(gimp, *args); File.exist?(png_path)}
png_file.open
png_file.binmode
load_data(png_file.read)
else
raise GIMPCanNotHandleError.new("gimp #{args.join(' ')}",
GIMP_COMMANDS)
end
end