예제 #1
0
    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])

예제 #2
0
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