[Image-SIG] Writting ppm files??
fredrik at pythonware.com
Tue Aug 19 13:28:07 CEST 2008
Fredrik Lundh wrote:
> looks like you could save yourself a lot of time and effort by first
> checking if you can install:
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
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)
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):
for x in range(im.size):
r, g, b = pix[x, y]
print >>out, r, g, b,
tweak as necessary.
More information about the Image-SIG