def insertFrame(self, data, delayTime): #write f9 self.fileWrite.write('!') self.fileWrite.write(chr(0xf9)) self.fileWrite.write(chr(4)) self.fileWrite.write(chr(5)) strWrite = '' strWrite += chr(delayTime % 256) strWrite += chr(delayTime / 256) strWrite += chr(7) strWrite += chr(0) self.fileWrite.write(strWrite) #write img self.fileWrite.write(',') strWrite = '' strWrite += chr(self.XOffset % 256) strWrite += chr(self.XOffset / 256) strWrite += chr(self.YOffset % 256) strWrite += chr(self.YOffset / 256) strWrite += chr(self.width % 256) strWrite += chr(self.width / 256) strWrite += chr(self.height % 256) strWrite += chr(self.height / 256) strWrite += chr(0) self.fileWrite.write(strWrite) #write self.fileWrite.write(chr(4)) enc = lzw(4, data) strEncode = enc.encode() wholeLen = len(strEncode) wLen = 0 while wLen < wholeLen: if wholeLen - wLen > 255: self.fileWrite.write(chr(255)) self.fileWrite.write(strEncode[wLen: wLen + 255]) wLen += 255 else: self.fileWrite.write(chr(wholeLen - wLen)) self.fileWrite.write(strEncode[wLen:]) wLen = wholeLen self.fileWrite.write(chr(0))
def insertFrame(self, data, delayTime): #write f9 self.fileWrite.write('!') self.fileWrite.write(chr(0xf9)) self.fileWrite.write(chr(4)) self.fileWrite.write(chr(5)) strWrite = '' strWrite += chr(delayTime % 256) strWrite += chr(delayTime / 256) strWrite += chr(7) strWrite += chr(0) self.fileWrite.write(strWrite) #write img self.fileWrite.write(',') strWrite = '' strWrite += chr(self.XOffset % 256) strWrite += chr(self.XOffset / 256) strWrite += chr(self.YOffset % 256) strWrite += chr(self.YOffset / 256) strWrite += chr(self.width % 256) strWrite += chr(self.width / 256) strWrite += chr(self.height % 256) strWrite += chr(self.height / 256) strWrite += chr(0) self.fileWrite.write(strWrite) #write self.fileWrite.write(chr(4)) enc = lzw(4, data) strEncode = enc.encode() wholeLen = len(strEncode) wLen = 0 while wLen < wholeLen: if wholeLen - wLen > 255: self.fileWrite.write(chr(255)) self.fileWrite.write(strEncode[wLen:wLen + 255]) wLen += 255 else: self.fileWrite.write(chr(wholeLen - wLen)) self.fileWrite.write(strEncode[wLen:]) wLen = wholeLen self.fileWrite.write(chr(0))
def test_encoding(self): l = lzw() l.set_to_simple() self.assertTrue(l.encode("bccacbcccccccccccaccca") == [2,3,3,1,3,4,5,10,11,6,10,1])
def test_decode(self): l = lzw() l.set_to_simple() self.assertTrue(l.decode([2,3,3,1,3,4,5,10,11,6,10,1]) == ['b', 'c', 'c', 'a', 'c', 'bc', 'cc', 'ccc', 'cccc', 'ca', 'ccc', 'a'])
def test_decode_task1(self): l = lzw() l.set_to_simple() print l.decode([2,3,3,1,3,4,5,10,11,6,10,1])