【Python】 切割图集的小脚本

Python 切割图片脚本

前言:

有短时间没写博客了,今天打算再写一篇MonoGame的教程,这篇是我再做我自己的2D 游戏项目的时候我需要一些已经切割好的图片但我得到图片是合在一起图集,这个脚本适合正在做2D游戏开发且不依赖于游戏引擎本身切割功能的开发者们。

步骤:

第一步:

安装Python,不需要下载PyCharm只需前往官网下载:
传送门
具体安装步骤网上都有。大家可以去看看其他博主的教程都说的非常不错!!!

第二步:

打开下载好的IDLE ,如下图,并创建新的脚本 (New File 或者 Ctrl + N)

在这里插入图片描述

第三步:

复制代码并保存
在这里插入图片描述

第四步:

在你所创建的脚本下创建output文件夹和准备好的图集并运行脚本就OK啦!!

注意:

再上述代码示例中大家仔细看以下第四行,这个切割是根据大家的需要修改的,我需要切割的是16 * 16的正方形瓦片,那么我就使用这个,但是如果你需要切割这个20 * 20 的瓦片那么大家自己修改,包括主函数中哪个文件名字和图片名都是可以自己适配的,具体的我的注释写的也很清楚

代码:

直接上代码,这个代码很简单大家稍微看一下基本就能实现这个功能,OK我也不多废话,这个大家直接拿走取用吧,也很简单,封装一下当个小工具用还是可以的。

import os
from PIL import Imagedef split_atlas(atlas_path, output_dir, tile_size=16):"""将图集切割成16x16的小图并保存到output文件夹参数:atlas_path: 图集文件路径output_dir: 输出文件夹路径tile_size: 每个小图的大小(默认为16x16)"""# 确保输出目录存在if not os.path.exists(output_dir):os.makedirs(output_dir)# 打开图集try:atlas = Image.open(atlas_path)except FileNotFoundError:print(f"错误: 找不到图集文件 {atlas_path}")returnexcept Exception as e:print(f"打开图集时出错: {e}")return# 获取图集尺寸width, height = atlas.size# 计算行列数cols = width // tile_sizerows = height // tile_size# 计数器count = 1# 遍历每个小图for row in range(rows):for col in range(cols):# 计算切割区域left = col * tile_sizeupper = row * tile_sizeright = left + tile_sizelower = upper + tile_size# 切割图集tile = atlas.crop((left, upper, right, lower))# 保存小图tile.save(os.path.join(output_dir, f"{count}.png"))count += 1print(f"切割完成,共生成 {count-1} 张小图")if __name__ == "__main__":# 设置路径atlas_path = os.path.join(os.path.dirname(__file__), "atlas.png")output_dir = os.path.join(os.path.dirname(__file__), "output")# 执行切割split_atlas(atlas_path, output_dir)

结语:

当然了这个非常简单,大家也可以根据自己的需要修改我的代码,如果大家着急用就

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

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

相关文章

网络安全是什么?手把手教你认识网络安全

网络安全是什么?手把手教你认识网络安全 提到网络安全,不少人会联想到电影里黑客指尖翻飞攻破系统的炫酷场景。但实际上,它并非遥不可及的技术名词,而是与我们日常生活息息相关的 “数字保镖”。从手机支付密码到社交账号信息&am…

AtCoder Beginner Contest 416(2025.7.26)

文章目录A Vacation ValidationB 1D Akari(补)C Concat (X-th)(补)题目考查题意简述解法思路 :AC代码D Match, Mod, Minimize 2(补)题目分数/评级题目考查时间复杂度题意简述解法思路 &#xff…

基于 Hadoop 生态圈的数据仓库实践 —— OLAP 与数据可视化(五)

目录 五、Hue、Zeppelin 比较 1. Zeppelin 简介 2. Zeppelin 安装配置 (1)安装环境 (2)Zeppelin 及其相关组件 (3)配置 Zeppelin (4)启动 Zeppelin (5&#xff0…

《消息队列学习指南:从 MQ 基础到 SpringAMQP 实践》

初识MQ 同步调用 目前我们采用的是基于OpenFeign的同步调用,也就是说业务执行流程是这样的: 支付服务需要先调用用户服务完成余额扣减 然后支付服务自己要更新支付流水单的状态 然后支付服务调用交易服务,更新业务订单状态为已支付 三个…

深度学习 --- 过拟合与欠拟合

深度学习 — 过拟合与欠拟合 文章目录深度学习 --- 过拟合与欠拟合一.概念1.1 过拟合1.2 欠拟合1.3 判断方式二,解决欠拟合三,解决过拟合3.1 L2正则化3.1.1 定义以及作用3.1.2 代码3.2 L1正则化3.3 L1与L2对比3.4 Dropout示例3.5 数据增强3.5.1 图片缩放…

Python 之抽象方法 @abstractmethod 的理解

如果你熟悉 Java 的话,Java 里有一个抽象接口的概念,Python 里的抽象方法基本上与其类似。在 Python 中,abstractmethod 是一个装饰器,用于定义抽象方法。它是实现抽象基类(Abstract Base Class, ABC)的核心…

深度学习·pytorch

广播机制 从末尾开始逐个维度遍历两个矩阵的shape,如果维度不相同,则考虑广播:任一方的维度为1或者维度不存在(小矩阵广播为大矩阵),这样的运算可以广播 可以广播的例子 xtorch.empty(5,3,4,1) ytorch.empty(3,1,1) (x.add_(y)).s…

SpringBoot集成deepseek

pom文件&#xff1a;<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org…

JetBrains Annotations:从入门到落地,彻底告别 NullPointerException

本文基于三篇高质量博客&#xff08;JetBrains Annotations官方文档、Jakarta Validation 规范、《Effective Java》第3版&#xff09;的原文内容&#xff0c;结合作者在一线研发团队落地 JetBrains Annotations 的实战经验&#xff0c;系统梳理了该注解库的核心能力、使用姿势…

基于Rust与HDFS、YARN、Hue、ZooKeeper、MySQL

基于Rust与HDFS、YARN、Hue、ZooKeeper、MySQL集合 以下是基于Rust与HDFS、YARN、Hue、ZooKeeper、MySQL等技术栈结合的实例,涵盖不同场景和应用方向: 数据处理与分析 使用Rust编写MapReduce作业,通过YARN提交到HDFS处理大规模数据集。Rust的高性能特性适合处理密集型计算…

芯片上市公司正在放弃射频业务

转载自--钟林谈芯射频芯片赛道本来不卷的&#xff0c;投资人多了也就卷了。本周&#xff0c;多家媒体报道某芯片上市公司终止射频业务&#xff0c;终止射频业务的何止一家芯片上市公司&#xff0c;从去年开始就逐渐有上市公司终止射频业务&#xff0c;开启清货模式。如人饮水&a…

Jmeter 性能测试监控之ServerAgent

使用 Jmeter 对 Linux 服务器的进行压测时&#xff0c;想要监控服务器的 CPU 、内存&#xff0c;可以通过添加插件 【ServerAgent】来观察,可以实时监控性能指标 一、ServerAgent-2.2.3下载 下载地址&#xff1a; GitCode - 全球开发者的开源社区,开源代码托管平台 二、通过插…

5.苹果ios逆向-过ssl证书检测和安装ssh和获取root权限

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;图灵Python学院 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1bb8NhJc9eTuLzQr39lF55Q?pwdzy89 提取码&#xff1…

Navicat 17 教程:Windows 和 Mac 系统适用

一、引言 对于程序员们来说&#xff0c;Navicat是一款极为实用的数据库管理工具。Navicat 17更是带来了诸多新特性&#xff0c;能大大提升我们的工作效率。今天就为大家带来Navicat 17在Windows和Mac系统上的使用教程。 二、准备工作 &#xff08;一&#xff09;下载安装包 「…

Android 中 实现柱状图自定义控件

一、基本思路 创建自定义控件的数据模型; 创建一个自定义 View 类,继承自 View; 在初始化方法中获取自定义属性的值。 创建设置数据方法,将数据模型列表转换成自定义绘制时的数据; 重写 onDraw 方法,以实现自定义的绘制逻辑。 二、主要绘制方法 1、drawLine 绘制直线 p…

Netty 核心原理与实战:从 DiscardServer 看透 Reactor 模式与组件协作

目录 Netty 是什么&#xff1f; Netty 的目标 Netty 实战案例 DiscardServer 服务端程序 NettyDiscardServer 业务处理器 NettyDiscardHandler 配置类 NettyDemoConfig 回顾 Reactor 模式中的 IO 事件处理流程 Netty 中的 Channel Netty 中的 Reactor Netty 中的 Han…

关于“LoggerFactory is not a Logback LoggerContext but Logback is on ......“的解决方案

​ ✨重磅&#xff01;盹猫的个人小站正式上线啦&#xff5e;诚邀各位技术大佬前来探秘&#xff01;✨ 这里有&#xff1a; 硬核技术干货&#xff1a;编程技巧、开发经验、踩坑指南&#xff0c;带你解锁技术新姿势&#xff01;趣味开发日常&#xff1a;代码背后的脑洞故事、工具…

2025年6月电子学会青少年软件编程(C语言)等级考试试卷(三级)

答案和更多内容请查看网站&#xff1a;【试卷中心 -----> 电子学会 ----> C/C ---->三级】 网站链接 青少年软件编程历年真题模拟题实时更新 编程题 第 1 题 打印城门 题目描述 给定一个正整数 n&#xff0c;输出如下的星号城门。具体格式请见样例。 输入格…

跨平台直播美颜SDK开发指南:兼顾性能与美型效果的最佳实践

面对iOS、Android乃至Web等多端应用需求&#xff0c;如何开发一款真正跨平台、兼顾性能与美型效果的美颜SDK&#xff0c;成为众多开发团队和产品经理的一道必答题。 今天笔者这篇文章&#xff0c;就从架构设计、性能优化、视觉效果调校三个关键维度&#xff0c;带你深入解析跨平…

2025数字藏品安全保卫战:高防CDN如何成为NFT应用的“隐形护甲”?

副标题&#xff1a; 从DDoS防御到全球加速&#xff0c;拆解数字资产平台的生死防线&#x1f310; 引言&#xff1a;当数字藏品成为黑客的“头号靶场”2025年全球数字藏品市场突破$1000亿&#xff0c;但安全事件同步激增230%——某头部NFT平台因3.2Tbps DDoS攻击瘫痪&#xff0c…