Fredrik Lundh wrote:

> looks like you could save yourself a lot of time and effort by first
> checking if you can install:
>
> http://www.pythonware.com/products/pil/

sorry, thought you'd posted this to c.l.python, and didn't see the "import" statement at first.

I am working with PPM/PGM/PBM file formats
which have the basic format :-

> where line1= type of file(p1=PBM,p2=PGM,p3=PPM), line2=comment,
> line3=dimension of the image (x and y length),line4=maximum value of
> color( here 15 means 4 bit R,G,B data)

not really -- the 15 means that the images contain data in the range 0-15. that fits in 4 bits, but since it's a text format, it isn't stored in 4 bits. far from it.

why are you using PPM text files? does the application your using really require that, or is this just something you thought would make things easier?

if you're only interested in making sure that all RGB values in an image fits inside the 0-15 range, you can simply do:

   im = Image.open(infile)
   im = im.point(lambda x: x/16)
   im.save(outfile)

if you insist on writing this out as a text file, replace the "save" with a simple loop that uses the im.load() accessor. something like this should work:

   pix = im.load()

   out = open(outfile, "w")
   print >>out, "P2"
   print >>out, "%d %d" % im.size
   print >>out, "15"
   for y in range(im.size[1]):
       for x in range(im.size[0]):
           r, g, b = pix[x, y]
           print >>out, r, g, b,
       print >>out
   out.close()

tweak as necessary.

</F>

_______________________________________________
Image-SIG maillist  -  Image-SIG@python.org
http://mail.python.org/mailman/listinfo/image-sig

Reply via email to