X-Git-Url: http://nitlanguage.org diff --git a/contrib/inkscape_tools/src/svg_to_png_and_nit.nit b/contrib/inkscape_tools/src/svg_to_png_and_nit.nit index b902f08..2a94089 100644 --- a/contrib/inkscape_tools/src/svg_to_png_and_nit.nit +++ b/contrib/inkscape_tools/src/svg_to_png_and_nit.nit @@ -68,14 +68,6 @@ end end end -redef class String - fun to_i_strip_e: Int - do - if has_substring("e-", 0) then return 0 - return to_i - end -end - redef class Int fun adapt(d: Int, scale: Float): Int do @@ -111,6 +103,11 @@ if not errors.is_empty or opt_help.value then exit 1 end +if not "inkscape".program_is_in_path then + print "This tool needs the external program `inkscape`, make sure it is installed and in your PATH." + exit 1 +end + var drawings = rest for drawing in drawings do if not drawing.file_exists then @@ -152,12 +149,12 @@ for drawing in drawings do var words = line.split("=") var n = words[1] n = n.substring(1, n.length-2) # remove "" - page_width = n.to_i_strip_e + page_width = n.to_f.ceil.to_i else if page_height == -1 and line.search("height") != null then var words = line.split("=") var n = words[1] n = n.substring(1, n.length-2) # remove "" - page_height = n.to_i_strip_e + page_height = n.to_f.ceil.to_i end end svg_file.close @@ -184,10 +181,10 @@ for drawing in drawings do if words.length == 5 then var id = words[0] - var x = words[1].to_i_strip_e - var y = words[2].to_i_strip_e - var w = words[3].to_i_strip_e - var h = words[4].to_i_strip_e + var x = words[1].to_f.floor.to_i + var y = words[2].to_f.floor.to_i + var w = words[3].to_f.ceil.to_i+1 + var h = words[4].to_f.ceil.to_i+1 if id.has_prefix("0") then var nit_name = id.substring_from(1) @@ -208,7 +205,7 @@ for drawing in drawings do # Nit class var nit_class_name = drawing_name.chars.first.to_s.to_upper + drawing_name.substring_from(1) + "Images" var nit_src = new ImageSetSrc(nit_class_name) - nit_src.attributes.add "\tprivate var main_image: Image\n" + nit_src.attributes.add "\tprivate var main_image: Image is noinit\n" nit_src.load_exprs.add "\t\tmain_image = app.load_image(\"images/{drawing_name}.png\")\n" # Sort images by name, it prevents Array errors and looks better @@ -237,7 +234,7 @@ for drawing in drawings do nit_src.load_exprs.add "\t\t{nit_name}.add(main_image.subimage({x}, {y}, {w}, {h}))\n" else # Single image - nit_src.attributes.add "\tvar {nit_name}: Image\n" + nit_src.attributes.add "\tvar {nit_name}: Image is noinit\n" nit_src.load_exprs.add "\t\t{nit_name} = main_image.subimage({x}, {y}, {w}, {h})\n" end end