Python自动化脚本裁剪图片为1:1比例

news2025/1/17 1:05:19

一、创建输入文件夹(in)和输出文件夹(out),将原始图片放在输入文件夹(in)里

二、 安装对应的Python库

pip install Pillow

三、编写自动化脚本代码

import os
from PIL import Image

def crop_images_to_square(input_folder, output_folder):
    # Create output folder if it doesn't exist
    os.makedirs(output_folder, exist_ok=True)

    # Loop through all files in the input folder
    for filename in os.listdir(input_folder):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.gif', '.bmp')):
            # Open image
            img_path = os.path.join(input_folder, filename)
            with Image.open(img_path) as img:
                # Get dimensions
                width, height = img.size

                # Calculate the new size (the smaller dimension)
                new_size = min(width, height)

                # Calculate cropping box
                left = (width - new_size) / 2
                top = (height - new_size) / 2
                right = (width + new_size) / 2
                bottom = (height + new_size) / 2

                # Crop image
                img_cropped = img.crop((left, top, right, bottom))

                # Save the cropped image to the output folder
                img_cropped.save(os.path.join(output_folder, filename))
                print(f'Cropped and saved: {filename}')

if __name__ == '__main__':
    input_folder = r'C:\Users\Administrator\Desktop\r\in'  # Replace with your input folder path
    output_folder = r'C:\Users\Administrator\Desktop\r\out'  # Replace with your output folder path
    crop_images_to_square(input_folder, output_folder)

ps:input_folder为输入文件夹,output_folder为输出文件夹,需要注意的是如果是绝对路径,前面需要添加原始字符串r。

四、运行Python脚本,裁剪后的图片就保存在输出文件夹中

五、效果图

原图:

 

裁剪后:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2214498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Axure RP电商系统商城PC+app+后台买家卖端高保真原型模板及元件库

AxureRP电商商城PCapp后台买家卖端高保真原型模板本套包含三份原型图素材 APP买家端原型简介: 包含了用户中心、会员成长、优惠券、积分、互动社区、运营推广、内容推荐、商品展示、订单流程、订单管理、售后及服务等完整的电商体系功能架构和业务流程。 本模板由…

Spring中ApplicationEvent事件的实现

1)简介 Spring Event (接口名为Aplication Event) 观察者设计模式,由事件发起者publisher发布事件(指定事件名),事件监听者监听事件(指定事件名)。 好比, A 说了一句话&#xff0c…

安卓14无法安装应用解决历程

客户手机基本情况: 安卓14,对应的 targetSdkVersion 34 前天遇到了安卓14适配问题,客户发来的截图是这样的 描述:无法安装我们公司的B应用。 型号:三星google美版 解决步骤: 1、寻找其他安卓14手机测试…

从源码到平台:使用视频美颜SDK构建高性能直播美颜系统详解

本文将深入探讨如何从源码出发,借助视频美颜SDK构建一套高性能的直播美颜系统,涵盖技术架构、核心功能的实现以及性能优化等方面的详解。 一、视频美颜SDK的作用与选择 视频美颜SDK是开发直播美颜系统的基础,它能够提供实时美颜处理功能&am…

STM32的GPIO片上外设

一、STM32的片上外设 片上外设是集成在 MCU 芯片内部的硬件模块,它们通过片内总线与 CPU 直接通信,而不是通过外部引脚或接口连接的设备。 片上外设: 包括 UART、I2C、SPI、ADC、定时器、GPIO、DMA、RTC 等集成在 MCU 内部的模块。这些外设…

《Linux从小白到高手》综合应用篇:深入理解Linux磁盘及IO优化

1. 前言 其实磁盘优化和IO优化,我在前面的其他Linux调优博文中已经讲述过或者涉及过了,但是太过零碎,所以本篇就来集中深入讨论下Linux磁盘和IO调优。 2.磁盘调优 结合我多年的经验,本人认为磁盘调优最重要的是读写性能的提升和…

Unity 实战案例全解析 实现时间停止效果+世界变灰

画面里运动的那个小玩意这么写 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Partol : MonoBehaviour {public Transform pos1;public Transform pos2;public float speed;private Transform target;void Start() {target p…

SpringBoot智能推荐:健康生活新选择

3系统分析 3.1可行性分析 通过对本基于智能推荐的卫生健康系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本基于智能推荐的卫生健康系统采用SSM框架&#…

二叉查找树(Binary Search Tree)Java语言实现

一、二叉查找树 二叉查找树(Binary Search Tree),也称为二叉搜索树、有序二叉树(Ordered Binary Tree)或排序二叉树(Sorted Binary Tree)。 是指一棵空树或者具有下列性质的二叉树&#xff1a…

Unity DOTS中的Archetype与Chunk

Unity DOTS中的Archetype与Chunk 在Unity中,archetype(原型)用来表示一个world里具有相同component类型组合的entity。也就是说,相同component类型的entity在Unity内部会存储到一起,共享同一个archetype。 使用这样的设…

JAVA毕业设计191—基于Java+Springboot+vue的电子产品商城管理系统(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue的电子产品商城管理系统(源代码数据库)191 一、系统介绍 本项目前后端不分离,分为用户、管理员两种角色 1、用户: 注册、登录、商品…

C++在vscode中的code runner配置/环境配置

C在vscode中快捷运行(code runner) 一、配置tasks.json 在vscode中创建文件夹或打开文件夹,会发现文件夹下多了一个.vscode文件夹,在该文件夹下创建tasks.json文件,并添加一下内容 {"version": "2.0…

弘景光电:以创新为翼,翱翔光学科技新蓝海

在科技日新月异的今天,光学镜头及模组作为智能设备的核心组件,其重要性日益凸显。广东弘景光电科技股份有限公司(以下简称“弘景光电”)正是在这一领域中,凭借其卓越的研发实力和市场洞察力,即将在创业板上…

工具篇:(二)MacOS 下载 MySQL 并进行配置连接,使用 VSCode 创建 Node 项目-亲测有效

MacOS 下载 MySQL 并进行配置连接,使用 VSCode 创建 Node 项目 我们将介绍如何在 macOS 上下载和配置 MySQL 数据库,并使用 VSCode 创建一个 Node.js 项目进行测试。通过这些步骤,您将能够顺利地设置开发环境并进行基本的数据操作。 一、删…

【国际学术会议之都,IEEE出版】第四届计算机科学、电子信息工程和智能控制技术国际会议(CEI 2024,2024年11月8-10日)

第四届计算机科学、电子信息工程和智能控制技术国际会议(CEI 2024) 2024 4th International Conference on Computer Science, Electronic Information Engineering and Intelligent Control Technology 官方信息 会议官网:www.ic-cei.org …

AFSim仿真系统 --- 系统简解_10处理器 (Processors)

处理器 (Processors) 处理器提供了为特定平台定义行为的能力。 大多数处理器由用户使用 AFSIM 脚本语言定义。 以下是一些预定义的处理器类型: WSF_DIRECTION_FINDER_PROCESSORWSF_TRACK_PROCESSORWSF_MESSAGE_PROCESSORWSF_GUIDANCE_COMPUTERWSF_IMAGE_PROCESS…

Android11 USB Camera会出现预览绿屏问题

目录 一、问题描述 二、问题原因 三、解决方法 一、问题描述 DDR容量是4G及以上的机器,USB Camera会出现预览绿屏问题。 串口中会刷如下log: 二、问题原因 RGA2使用超过4G内存会异常,导致USB Camera调用rga相关操作报错,从而预览绿屏 三…

深度学习基础—神经风格迁移

1.什么是神经风格迁移 神经风格迁移就是将一张图片的风格迁移到另一张图片上,生成具有第一张图片风格的新的图片。新图片的主体还是第二张图片,但是风格是第一张图片的。 如下两组图片都是神经风格迁移的例子: 将绘画的风格迁移到真实建筑图片…

树型名称前面插入图片

需求&#xff1a; 搜索树、树型要显示连线&#xff0c;还有名称前带图片 ui组件&#xff1a;https://devui.design/components/zh-cn/overview 直接上代码 [checkable] false 表示取消复选框 <div class"p-sm"><div class"row"><d-sea…

软件开发----Java基础每日刷题(转载于牛客)

1. 对抽象类的描述正确的是() A 抽象类的方法都是抽象方法 B 一个类可以继承多个抽象类 C 抽象类不能有构造方法 D 抽象类不能被实例化 正确答案&#xff1a;D 解析&#xff1a; A.抽象类可以有非抽象的方法&#xff0c;而接口中的方…