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)