def resize_image(fullfile,fullfile_resized,_megapixels):
    """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"""
    
    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
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