code: def resize_image(fullfile,fullfile_resized,_megapixels):
      
      
      logger.debug("%s - Resizing to %s MP"%(fullfile,_megapixels))
  
      img = Image.open(fullfile)
      width,height=img.size
      current_megapixels=width*height/(2.0**20)
  
      # Compute new width and height for image
      new_width,new_height=resize_compute_width_height(\
              fullfile,_megapixels)
  
      # Not scaling
      if not new_width:
          logger.debug("%s - NOT Resizing, scale is > 1"%(fullfile))
          return False
  
      logger.info("%s - Resizing image from %0.1f to %0.1f MP (%dx%d) to (%dx%d)"\
              %(fullfile,current_megapixels,_megapixels,width,height,new_width,new_height))
      # Resize the image
      imageresize = img.resize((new_width,new_height), Image.ANTIALIAS)
      #imageresize.save(fullfile_resized, 'JPEG', quality=75)
      #FIXME: What quality to save as?
      imageresize.save(fullfile_resized, 'JPEG')
  
      # ---- Transfer over EXIF info ----
      if not update_exif_GEXIV2(fullfile,fullfile_resized):
          return False
      
  
      return True
docs: Resizes image (fullfile), saves to fullfile_resized. Image
      aspect ratio is conserved, will be scaled to be close to _megapixels in 
      size. Eg if _megapixels=2, will resize 2560x1920 so each dimension
      is scaled by ((2**(20+1*MP))/float(2560*1920))**2