zoukankan      html  css  js  c++  java
  • 8.进行图片的裁剪,同时使用resize将图片的维度进行变化

    1.img.crop((x1, y1, x2, y2)) 进行图片的裁剪

     参数说明: x1, y1, x2, y2 表示图片的大小

    2. img.resize((w, h)) # 进行图片的维度变化

    参数说明:(w, h) 表示变换以后的图片的大小

    代码说明:创建一个新的文件,对每张图片进行1/4 - 3/4进行裁剪, 对裁剪以后的图片进行图片维度的变化

    第一步:进行文件,然后创建一个文件用于进行存储,如果不存在,就使用os.mkdir 进行创建

    第二步:使用img.crop() 进行图片的裁剪,使用img.resize() 进行图片的尺度变换,img.save(path) 进行图片的保存

    # -*- coding: utf-8 -*-
    ''' 
    Created on 2019/7/5/0005 9:33
        
    @Author : Sheng1994
     '''
    
    
    import os
    from PIL import Image
    
    
    def crop_from_image(src_file, dec_file, crop_size):
        img = Image.open(src_file)  # 图片打开
        img_width, img_height = img.size # 图片的尺度
        x_start = int(img_width / 4)  # 进行图片的裁剪
        y_start = int(img_height / 4)
        x_move = x_start + int(img_width / 2)
        y_move = y_start + int(img_height / 2)
        box = (x_start, y_start, x_move, y_move)
        img_crop = img.crop(box)
        img_resize_crop = img_crop.resize(crop_size) # 进行尺度的变化
        img_resize_crop.save(dec_file) # 进行图片的保存
    
    
    
    def folder_for_crop(db_folder, result_folder, crop_size):
        number = 0
        if not os.path.exists(result_folder):
            os.mkdir(result_folder)
        # 第一步:进行文件的读入
        for people_folder in os.listdir(db_folder):
            number += 1
            src_people_path = db_folder + os.sep + people_folder
            dec_people_path = result_folder + os.sep + people_folder
            if not os.path.exists(dec_people_path):
                os.mkdir(dec_people_path)
            count = 0
            step = 0
            for vedio_folder in os.listdir(src_people_path):
                step += 1
                src_vedio_folder = src_people_path + os.sep + vedio_folder
                dec_vedio_folder = dec_people_path + os.sep + vedio_folder
                if not os.path.exists(dec_vedio_folder):
                    os.mkdir(dec_vedio_folder)
                for img_file in os.listdir(src_vedio_folder):
                    count += 1
                    src_img_folder = src_vedio_folder + os.sep + img_file
                    dec_img_folder = dec_vedio_folder + os.sep + img_file
                    # 第二步:进行图片的裁剪操作
                    crop_from_image(src_img_folder, dec_img_folder, crop_size)
    
    
    
    def run():
         db_folder = 'image\origin'
         result_folder = 'image\result'
         folder_for_crop(db_folder, result_folder, (47, 55))
    
    if __name__ == '__main__':
         run()
  • 相关阅读:
    OpenGL(二十一) glPolygonOffset设置深度偏移解决z-fighting闪烁问题
    OpenGL(二十) glutSpecialFunc响应键盘方向控制键
    OpenGL(十九) gluOrtho2D、glViewport、glutInitWindowSize区别与关系
    matlab 三维图像的绘制
    matlab 三维图像的绘制
    UIKit和Core Graphics绘图(一)——字符串,线条,矩形,渐变
    jQuery实现密保互斥问题
    Lecture Halls
    POJ 3233 Matrix Power Series (矩阵+二分+二分)
    Wooden Sticks
  • 原文地址:https://www.cnblogs.com/my-love-is-python/p/11136806.html
Copyright © 2011-2022 走看看