fobj.write("P2\n") fobj.write(str(lis[0]) + " " + str(lis[1]) + "\n") fobj.write(str(lis[2]) + "\n") i = 1 for e in lis[3:]: fobj.write(str(e)) fobj.write(" ") if i%20==0: fobj.write("\n") i+=1 fobj.close() if __name__ == '__main__': pgm = lese(sys.argv[2]) if sys.argv[1] == 'python': n_pgm = python_filter(pgm) machDatei(n_pgm, sys.argv[3]) if sys.argv[1] == 'c': pgmArray = ctypes.c_int * (len(pgm)) pgm_in_c = pgmArray(*(pgm)) laenge_in_c = ctypes.c_int(len(pgm)) cfilter = ctypes.cdll.LoadLibrary(os.path.join(os.getcwd(),'cfilter.so')) cfilter.c_filter(pgm_in_c,laenge_in_c) machDatei(pgm_in_c, sys.argv[3])
if __name__ == '__main__': # print "Python Online-Abgabe 06" # print "-"*79 try: impl, src, target = sys.argv[1:4] except ValueError: print "usage:" print sys.argv[0], "<source-file>", "<target-file>" exit(1) except IOError, e: print "Bitte gueltige <source-file> angeben" if impl == "python": img = VImage(src) img.pixels2d = python_filter(img.pixels2d, img.header, target) img.to_pgm(target) elif impl == "c": import ctypes as ct # bib = ct.CDLL("libcfilter.so") fname = os.path.join(os.getcwd(),'cfilter.so') bib = ct.cdll.LoadLibrary(fname) bib.test.restype = None bib.neighbours_of.restype = None; DOUBLE = ct.c_double PDOUBLE = ct.POINTER(DOUBLE) PPDOUBLE = ct.POINTER(PDOUBLE) CHAR = ct.c_char