示例#1
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))
示例#2
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])