[Spambayes-checkins] spambayes/spambayes ImageStripper.py,1.5,1.6

Skip Montanaro montanaro at users.sourceforge.net
Sun Sep 10 00:59:40 CEST 2006


Update of /cvsroot/spambayes/spambayes/spambayes
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv13966

Modified Files:
	ImageStripper.py 
Log Message:
I don't want to support netpbm stuff, and it's highly unlikely anyone else
will either, so be a man about it and rip it out now.


Index: ImageStripper.py
===================================================================
RCS file: /cvsroot/spambayes/spambayes/spambayes/ImageStripper.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** ImageStripper.py	9 Sep 2006 22:18:28 -0000	1.5
--- ImageStripper.py	9 Sep 2006 22:59:38 -0000	1.6
***************
*** 58,86 ****
      return ""
  
- def find_decoders():
-     # check for filters to convert to netpbm
-     for decode_jpeg in ["jpegtopnm", "djpeg"]:
-         if find_program(decode_jpeg):
-             break
-     else:
-         decode_jpeg = None
-     for decode_png in ["pngtopnm"]:
-         if find_program(decode_png):
-             break
-     else:
-         decode_png = None
-     for decode_gif in ["giftopnm"]:
-         if find_program(decode_gif):
-             break
-     else:
-         decode_gif = None
- 
-     decoders = {
-         "image/jpeg": decode_jpeg,
-         "image/gif": decode_gif,
-         "image/png": decode_png,
-         }
-     return decoders
- 
  def imconcatlr(left, right):
      """Concatenate two images left to right."""
--- 58,61 ----
***************
*** 101,167 ****
      return result
  
- def pnmsize(pnmfile):
-     """Return dimensions of a PNM file."""
-     f = open(pnmfile)
-     line1 = f.readline()
-     line2 = f.readline()
-     w, h = [int(n) for n in line2.split()]
-     return w, h
- 
- def NetPBM_decode_parts(parts, decoders):
-     """Decode and assemble a bunch of images using NetPBM tools."""
-     rows = []
-     tokens = Set()
-     for part in parts:
-         decoder = decoders.get(part.get_content_type())
-         if decoder is None:
-             continue
-         try:
-             bytes = part.get_payload(decode=True)
-         except:
-             tokens.add("invalid-image:%s" % part.get_content_type())
-             continue
- 
-         if len(bytes) > options["Tokenizer", "max_image_size"]:
-             tokens.add("image:big")
-             continue                # assume it's just a picture for now
- 
-         fd, imgfile = tempfile.mkstemp()
-         os.write(fd, bytes)
-         os.close(fd)
- 
-         fd, pnmfile = tempfile.mkstemp()
-         os.close(fd)
-         os.system("%s <%s >%s 2>dev.null" % (decoder, imgfile, pnmfile))
-         w, h = pnmsize(pnmfile)
-         if not rows:
-             # first image
-             rows.append([pnmfile])
-         elif pnmsize(rows[-1][-1])[1] != h:
-             # new image, different height => start new row
-             rows.append([pnmfile])
-         else:
-             # new image, same height => extend current row
-             rows[-1].append(pnmfile)
- 
-     for (i, row) in enumerate(rows):
-         if len(row) > 1:
-             fd, pnmfile = tempfile.mkstemp()
-             os.close(fd)
-             os.system("pnmcat -lr %s > %s 2>/dev/null" %
-                       (" ".join(row), pnmfile))
-             for f in row:
-                 os.unlink(f)
-             rows[i] = pnmfile
-         else:
-             rows[i] = row[0]
- 
-     fd, pnmfile = tempfile.mkstemp()
-     os.close(fd)
-     os.system("pnmcat -tb %s > %s 2>/dev/null" % (" ".join(rows), pnmfile))
-     for f in rows:
-         os.unlink(f)
-     return [pnmfile], tokens
- 
  def PIL_decode_parts(parts):
      """Decode and assemble a bunch of images using PIL."""
--- 76,79 ----
***************
*** 298,304 ****
              pnmfiles, tokens = PIL_decode_parts(parts)
          else:
!             if not find_program("pnmcat"):
!                 return "", Set()
!             pnmfiles, tokens = NetPBM_decode_parts(parts, find_decoders())
  
          if pnmfiles:
--- 210,214 ----
              pnmfiles, tokens = PIL_decode_parts(parts)
          else:
!             return "", Set()
  
          if pnmfiles:



More information about the Spambayes-checkins mailing list