def format(format, page = 0)
c = CommandBuilder.new('mogrify', '-format', format)
yield c if block_given?
c << @path
run(c)
old_path = @path.dup
@path.sub!(/(\.\w*)?$/, ".#{format}")
File.delete(old_path) if old_path != @path
unless File.exists?(@path)
begin
FileUtils.copy_file(@path.sub(".#{format}", "-#{page}.#{format}"), @path)
rescue => ex
raise MiniMagick::Error, "Unable to format to #{format}; #{ex}" unless File.exist?(@path)
end
end
ensure
Dir[@path.sub(/(\.\w+)?$/, "-[0-9]*.#{format}")].each do |fname|
File.unlink(fname)
end
end