def run(self): logger.debug("Email sending thread started...") print "Email sending thread started..." try: send_mail(self.subject, self.message, self.from_email, self.recipient_list) except: print utils.traceBack() # use loger later TODO logger.debug("Email sending thread end") print("Email sending end")
def scalePic(img, path, prefix, filename, size, quality): '''切剪图片: _thumb()缩放将改变原图,所以考虑在拷贝上进行 params: path: 缩放后图片文件存放目录 prefix: 文件名前缀, 如activity, profile等 filename: 文件uuid名 size: 文件缩放尺寸 quality: 分辨率 ''' try: _img = img.copy() _thumb(_img, size) _save(_img, os.path.join(path, prefix), filename, _quality=quality) return "%s/%s" % (prefix, filename) except: utils.traceBack() return None
def cut(img, xy, size, path, quality): '''剪切图片, 剪切后进行缩放,并保存为新的图片文件. params: img: Image object xy: 剪切坐标tuple,各坐标点为整数, 形如 (x1, y1, x2, y2) size: 缩放尺寸tuple, like (width, height) path: 剪切后图片存放目录,新图文件名将由uuid生成 quality: 剪切后生成图片的分辨率, 将决定图片的存储容量, 100同原图容量, -->0依次减小 return: 剪切成功, 返回由uuid生成的新文件名,否则返回none ''' try: _img = img.copy() _img.crop(xy) return scale(_img, size, path, quality) except: logger.error("%s" % utils.traceBack()) utils.traceBack() return None
def _thumb(img, size): """按指定尺寸对img对象进行缩放(不进行保存操作). 缩放成功,return True, or return False. 缩放将改变图片的宽高尺寸及图片存储容量 params: img: PIL Image object size: 文件缩放高宽值,tuple type """ try: img.thumbnail(size, Image.ANTIALIAS) return True except: logger.error("%s" % utils.traceBack()) return False
def _save(img, path, filename, format="JPEG", _quality=IMG_QUALITY, create_dir=True): '''save Image object to file system, according to the value of create_dir to create a new dir , or not params: create_dir: if True, when then filepath not exists, create new one or not create. ''' if not file_utils.isFileExist(path): if create_dir: os.makedirs(path) logger.info("path [%s] not exist, new one created" % path) else: logger.error("save file failed, path [%s] not exist" % path) return False try: img.save(os.path.join(path, filename), format, quality=_quality) logger.debug("File with name %s saved" % filename) return True except: utils.traceBack() return False