flip.py
850 Bytes
import mjpeg
import sys
import struct
from PIL import _binary
import numpy as np
i8 = _binary.i8
o8 = _binary.o8
i16 = _binary.i16be
i32 = _binary.i32be
a = mjpeg.Jpeg("res/test2.jpg")
# print a.component_count
def flipblock(block):
tmp = str(block)
for i in range(0, len(block), 4):
short, = struct.unpack_from("h", tmp, i+2)
struct.pack_into("h", block, i+2, -short)
for comp in range(a.component_count):
xmax, ymax = a.getcomponentdimensions(comp)
for y in range(ymax):
for x in range((xmax+1)/2):
block = a.getblock(x,y,comp)
block_to_show = np.frombuffer(block, dtype=np.int16, count=-1, offset=0).reshape(8,8)
print block_to_show
block2 = a.getblock(xmax-1 - x, y, comp)
flipblock(block)
flipblock(block2)
a.setblock(xmax-1-x, y, comp, block)
a.setblock(x,y,comp,block2)