python 图片等比例放大、获取图片大小处理

一、手动调整图片大小

代码如下(示例):

# One
# 手动调整图片大小
from PIL import Image 
def Image_PreProcessing():
    # 待处理图片存储路径	
    im = Image.open(r'C:\Users\tuxia\Desktop\1.jpg')
    # Resize图片大小,入口参数为一个tuple,新的图片大小
    imBackground = im.resize((1000,600))
    #处理后的图片的存储路径,以及存储格式
    imBackground.save(r'C:\Users\tuxia\Desktop\22.jpg','JPEG')
if __name__ == "__main__":
    Image_PreProcessing()

二、根据图片大小进行等比例缩放

代码如下(示例):

# Two
# 根据图片大小进行等比例缩放
from PIL import Image 
def Image_PreProcessing():
    # 读取图片
    img = Image.open(r'C:\Users\tuxia\Desktop\ss.jpg')
    # 获取图片的高和宽
    imagePixmap = img.size
    print(imagePixmap)
    # 获取具体高、宽
    width = img.size[0]   
    height = img.size[1]
    # 根据原始高和宽进行图片大小放缩
    n_img = img.resize((int(width*0.6), int(height*0.6)), Image.ANTIALIAS)
    # 保存图片
    n_img.save(r'C:\Users\tuxia\Desktop\ss11.jpg','JPEG')
if __name__ == "__main__":
    Image_PreProcessing()

三、获取图片大小

代码如下(示例):

# Three
# 获取图片的kb大小
from PIL import Image 
import os
def Image_PreProcessing():
    # 读取图片
    imagePath = os.path.join(r'C:\Users\tuxia\Desktop\2.jpg')
    # 获取图片的kb大小
    imageSize = os.path.getsize(imagePath)
    img = imageSize / 1024 # 除以1024是代表Kb
    print(img)
if __name__ == "__main__":
    Image_PreProcessing()

四、自动获取图片大小并按比例缩放

代码如下(示例):

# 将Two 与 Three 结合

from PIL import Image 
import os
def Image_PreProcessing(r_path,s_path):
    
    img1 = imagePath = os.path.join(r_path)
    imageSize = os.path.getsize(img1)
    img11 = imageSize / 1024
    img2 = Image.open(r_path)
    imagePixmap = img2.size
    width = img2.size[0]   
    height = img2.size[1]
    n_img = img2.resize((int(width*0.65), int(height*0.6)), Image.ANTIALIAS)
    n_img.save(s_path)
    img3 = imagePath = os.path.join(s_path)
    imageSizes = os.path.getsize(img3)
    img33 = imageSizes / 1024
    print('原始图片大小{}kb'.format( img11),'缩放后图片大小{}kb'.format(img33))
    return True
if __name__ == "__main__":
    r_path = r'C:\Users\tuxia\Desktop\1.png'
    s_path = r'C:\Users\tuxia\Desktop\11.png'
    Image_PreProcessing(r_path,s_path)
    
####################################################################
import sys
import os
import cv2
import dlib
input_dir = r'C:\Users\tuxia\Desktop\one'
output_dir = r'C:\Users\tuxia\Desktop\two'
size = 64
if not os.path.exists(output_dir):
    os.makedirs(output_dir)
detector = dlib.get_frontal_face_detector()
for path in os.listdir(input_dir):
    input_path=input_dir+"\\"+path
    out_path=output_dir+"\\"+path
    if not os.path.exists(out_path):
        os.makedirs(out_path)
    for img in os.listdir(input_path):
        img_path = input_path + '\\' + img
        out_dir=out_path+ '\\' + img
        print('正在处理照片 %s' % img_path)
        img = cv2.imread(img_path)
        gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        dets = detector(gray_img, 1)
        x1 = 0;y1 = 0;x2 = 0;y2 = 0
        for i, d in enumerate(dets):
            x1 = d.top() if d.top() > 0 else 0
            y1 = d.bottom() if d.bottom() > 0 else 0
            x2 = d.left() if d.left() > 0 else 0
            y2 = d.right() if d.right() > 0 else 0
            face = img[x1:y1, x2:y2]
            face = cv2.resize(face, (size, size))
            cv2.imwrite(out_dir, face)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值