• django,python图片,压缩,加水印


    准备工作

    #settings.py
    
    #设置静态文件目录
    STATIC_URL = '/static/'
    
    STATICFILES_DIRS=[
         os.path.join(BASE_DIR,'static')
    ]
    
    #定义上传文件夹的路径
    UPLOAD_ROOT = os.path.join(BASE_DIR,'static/upload')
    

    1.添加水印

    #绘画库
    from PIL import ImageDraw
    #字体库
    from PIL import ImageFont
    #图片库
    from PIL import Image
    
    #读取指定文件目录下的图片
    img = Image.open('./static/upload/%s'%myfile_name)         #print(im.format,im.size,im.mode)  #获取图片的属性 类型,大小,模式
    
    # 获取图片宽高(平行赋值)
    width, height = img.size
    
    # 定义水印文字
    text = '水印文字'
    #字体                    
    font = ImageFont.truetype(font='C:WindowsFontsFZXKJW.TTF',size=35)        #windows自带的文字编辑,可用可不用,不用就删掉font
    # 获取字体宽高
    font_width, font_height = font.getsize(text)
    
    # 生成画笔
    draw = ImageDraw.Draw(img)
    
    # 写入文本 参数((x,y),水印文字,颜色,字体) 图片的像素 -- 文字像素 == 合适的字体位置(右下角)
    draw.text((width-font_width,height-font_height), text,fill=(76,234,124,180), font=font)
    # 根据路径保存文件 
    img.save(os.path.join(UPLOAD_ROOT, '', myfile_name))
    

    2.压缩图片

    #压缩 
    import cv2
    #读图
    img = cv2.imread('./dingding.png')
    #开始压缩 png压缩等级清晰0-9模糊
    cv2.imwrite('./dingding1.png',img,[cv2.IMWRITE_PNG_COMPRESSION,5])
    
    #jpg压缩等级清晰0-100模糊 
    cv2.imwrite('./dingding1.jpg',img,[cv2.IMWRITE_JPEG_QUALITY,50])
  • 相关阅读:
    mzy git学习,分支以及分支合并(四)
    mzy git学习,删除文件(三)
    mzy git学习,撤销修改(二)
    mzy git学习,初识git(一)
    apche的BeanUtils避免使用!
    eclipse性能调优的一次记录
    Java规范化代码eclipse模板注释
    左倾堆(对两个优先队列合并)
    二叉堆的实现(数组)——c++
    哈夫曼树——c++
  • 原文地址:https://www.cnblogs.com/wonderlandlove/p/12809741.html
Copyright © 2020-2023  润新知