hi i am new to python and PIL and was trying to write a class to read and write RGB color model jpeg images.. i came up with this class below..i want to know if this is the way to read/write the RGB color model jpeg..if anyone can give feedback (esp on the methods writeImage1( ) and writeImage2( ) it wd help my studies .. TIA dn
#jpgpy.py import Image from sys import argv from numpy import array class JPGFile: def __init__(self,filename): self._filename=filename self._height=0 self._width=0 self._mode="" self._rgblist=[] self._pixellist=[] self._pixarray=None self.readImage() def getheight(self): return self._height def getwidth(self): return self._width def getpixellist(self): return self._pixellist def getrgblist(self): return self._rgblist def makepixval(self,(r,g,b)): alpha=255 pixval=(alpha<<24)|(r<<16 )|( g<<8) | b return pixval def readImage(self): im=Image.open(self._filename) self._mode=im.mode self._width,self._height=im.size for y in range(self._height): for x in range(self._width): r,g,b=im.getpixel((x,y)) self._rgblist.append((r,g,b)) pval=self.makepixval((r,g,b)) self._pixellist.append(pval) self._pixarray=array(self._pixellist,float) def makergb(self,pixval): alpha=pixval>>24 red=(pixval>>16 )&255 green=(pixval>>8 )&255 blue=(pixval)& 255 return red,green,blue def writeImage1(self,fname,data,width,height): imnew=Image.new(self._mode,(width,height)) newrgblist=[] for i in range(len(data)): r,g,b=self.makergb(data[i]) newrgblist.append((r,g,b)) index=0 for y in range(height): for x in range(width): imnew.putpixel((x,y),newrgblist[index]) index+=1 imnew.save(fname) def writeImage2(self,fname,data,width,height): imnew=Image.new(self._mode,(width,height)) newrgblist=[] for i in range(len(data)): r,g,b=self.makergb(data[i]) newrgblist.append((r,g,b)) imnew.putdata(newrgblist) imnew.save(fname) imgname=argv[1] #Usage: python jpgpy.py myimage.jpg print "to read from:",imgname x=JPGFile(imgname) print x.getheight(),"",x.getwidth() pixlist=x.getpixellist() rgbtpllist=x.getrgblist() w=x.getwidth() h=x.getheight() x.writeImage1("newimage1.jpg",pixlist,w,h) -- http://mail.python.org/mailman/listinfo/python-list