1 """Dia2Png SCons Builder: Build a PNG file given a DIA file.
3 Support the specification of a scalefactor in the DIA2PNGDPI Environment variable.
10 def dia_getSize(env,source):
12 for line in os.popen(env['DIACOM']+" -e /proc/self/fd/1 -t eps "+str(source[0]),"r"):
13 if line.startswith("%%BoundingBox:"):
14 size=map(int,line.split()[3:])
18 def dia2png_generator(source, target, env, for_signature):
20 return "$DIACOM -t png -s $DIA2PNGDPI $TARGET $SOURCE"
21 size = dia_getSize(env,source)
22 if not size: return None;
23 size[0] = size[0]*int(env['DIA2PNGDPI'])/72
24 size[1] = size[1]*int(env['DIA2PNGDPI'])/72
25 return env.Action("$DIACOM -t png -s %dx%d -e $TARGET $SOURCE" % tuple(size))
27 Dia2Png = SCons.Builder.Builder(suffix = ".png",
29 generator = dia2png_generator,
33 env['BUILDERS']['Dia2Png'] = Dia2Png
35 env['DIA2PNGDPI'] = 115
38 return env.Detect("dia")