zoukankan      html  css  js  c++  java
  • 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])
  • 相关阅读:
    【vijos】【优先队列】合并果子
    【vijos】【二叉树】FBI树
    【NOIp复习】数据结构之栈、队列和二叉树
    【Leetcode】53. Maximum Subarray
    PHP json_encode转换空数组为对象
    206. Reverse Linked List
    151. Reverse Words in a String
    74. Search a 2D Matrix
    557. Reverse Words in a String III
    【Leetcode】79. Word Search
  • 原文地址:https://www.cnblogs.com/wonderlandlove/p/12809741.html
Copyright © 2011-2022 走看看