picseal_pub/libs/jpg_fp.py

70 lines
1.6 KiB
Python

#
#
#
class JpgFingerprint:
def __init__(self):
self.markers_a = []
self.markers_img = []
self.markers_meta = []
# self.markers_h = {}
def addImgMetadata(self, mhex, mpos, mlen, mstr):
marker = JpgMarker(mhex, mpos, mlen, mstr)
self.markers_a.append(marker)
self.markers_meta.append(marker)
#
def addImgData(self, mhex, mpos, mlen, mstr):
marker = JpgMarker(mhex, mpos, mlen, mstr)
self.markers_a.append(marker)
self.markers_img.append(marker)
#
def printImgMarkers(self):
# print ("Got here dummies")
# print ("len=={}".format(len(self.markers_img)))
# print ("*** *** *** ***\n{}".format(retstr))
return JpgFingerprint.__printMarker(self.markers_img)
#
def printMDMarkers(self):
return JpgFingerprint.__printMarker(self.markers_meta)
#
def __repr__(self):
return JpgFingerprint.__printMarker(self.markers_a)
#
@staticmethod
def __printMarker(markers):
str = ""
total = 0
for marker in markers:
str += repr(marker) + "\n"
total += marker.marker_size
str += "[TOT ] bytes=={}".format(total)
str += "\n"
return str
#
class JpgMarker:
"""
Marker Data Type
"""
def __init__(self, mhex, fpos, mlen, mstr):
self.marker_hex = mhex
self.marker_hexstr = self.marker_hex.to_bytes(2, 'big').hex()
self.marker_filepos = fpos
self.marker_size = mlen
self.marker_cat = mstr
def __repr__(self):
return "[{}] {} {}(len) {}(fpos)".format(self.marker_cat, self.marker_hexstr, self.marker_size, self.marker_filepos)