jpeg_DHTstrip.py
JPEGからDHTを削除するプログラム。
#!/usr/bin/env python import webapp2 import logging def DHTstrip(data): s = "" pos = 0 while pos < len(data): c = data[pos] pos += 1 if c != '\xff': # mark s += c continue c = data[pos] pos += 1 if c in '\xd8\xd9\x00': # SOI EOI logging.info("%4d FF%02X" % (pos-2,ord(c))) s += data[pos-2:pos] skip = 0 else: skip = ord(data[pos])*256+ord(data[pos+1]) logging.info("%4d FF%02X %d bytes" % (pos-2, ord(c), skip)) if c != '\xc4': # skip DHT s += data[pos-2:pos+skip] pos += skip return s class MainHandler(webapp2.RequestHandler): def get(self): self.response.out.write("""<html> <head><title>JPEG DHTstrip</title></head><body> JPEG DHTstrip<br> <form action="/jpeg/DHTstrip/upload" enctype="multipart/form-data" method="post"> <input type="file" name="image"><input type="submit"> </form></body></html>""") def post(self): image_data = self.request.get('image') image_data = DHTstrip(image_data) self.response.headers['Content-Type'] = "image/jpeg" self.response.out.write(image_data) app = webapp2.WSGIApplication([ ('/jpeg/DHTstrip.*', MainHandler) ], debug=True)