diff --git a/imagehasher.py b/imagehasher.py index 28cc9c9..c013287 100755 --- a/imagehasher.py +++ b/imagehasher.py @@ -17,11 +17,16 @@ class ImageHasher(object): if path is None and data is None: raise IOError - elif path is not None: - self.image = Image.open(path) else: - self.image = Image.open(StringIO.StringIO(data)) - + try: + if path is not None: + self.image = Image.open(path) + else: + self.image = Image.open(StringIO.StringIO(data)) + except: + print "Image data seems corrupted!" + # just generate a bogus image + self.image = Image.new( "L", (1,1)) def average_hash(self): image = self.image.resize((self.width, self.height), Image.ANTIALIAS).convert("L") diff --git a/issueidentifier.py b/issueidentifier.py index 53c525c..1384e13 100644 --- a/issueidentifier.py +++ b/issueidentifier.py @@ -107,11 +107,13 @@ class IssueIdentifier: return ImageHasher( data=image_data ).average_hash() def getAspectRatio( self, image_data ): + try: + im = Image.open(StringIO.StringIO(image_data)) + w,h = im.size + return float(h)/float(w) + except: + return 1.5 - im = Image.open(StringIO.StringIO(image_data)) - w,h = im.size - return float(h)/float(w) - def cropCover( self, image_data ): im = Image.open(StringIO.StringIO(image_data))