前言

最近在做一个mmo的游戏,里面的大地图是一张非常巨大的图片,我们要根据玩家所在的位置,动态加载地块,这就需要我们把这张大图拆分成n行m列,本来想着美术就可以拆了,但是因为图片太多,给美术也增加了不少工作量,于是,我就想到了强大的PIL,果断花费30分钟,给美术写了一个快速批量拆分图片的工具。
废话不多说,代码逻辑也不复杂,直接上代码吧

from PIL import Image
import os# 图片文件夹路径
root_path = "C:/Users/jzq/Desktop/Test/"
out_path = "C:/Users/jzq/Desktop/Test/"
# 后缀
ext_name = '.png'
# 图片名集合
forders = [#  图片名          切割行数     切割列数{"name": "11002", "row": 12, "column": 16},
]def image_split(file):img_name = file["name"]split_row = file["row"]split_col = file["column"]image_size = 256# 拼接图片路径img_src = root_path + img_name + ext_name# 拼接图片保存路径save_root = out_path + img_name + "/"if not os.path.exists(save_root):os.makedirs(save_root)print("split image:"+img_name)# 开始分割图片img_now = Image.open(img_src)index = 0for r in range(split_row):for c in range(split_col):row = split_row - r - 1col = csplit_area = (image_size * col, row * image_size, image_size * col + image_size, row * image_size + image_size)save_path = save_root + img_name + "_" + str(index) + ext_name;index = index + 1# print(row, col, save_path)img_now.crop(split_area).save(save_path)if __name__ == '__main__':for i in range(0, len(forders)):image_split(forders[i])

最后

Unity技术开发干活 - 总目录

Unity精选 - 专栏目录
Unity之ASE入门到精通 - 专栏目录
UniRx入门到精通 - 专栏目录

python之PIL 大图拆分成小图相关推荐

  1. chatgpt赋能python:分解gif:使用Python将动态图片拆分成单帧图片

    分解gif:使用Python将动态图片拆分成单帧图片 随着互联网上图片的使用越来越普遍,动态图片也成为了大家经常使用的图片之一.GIF动态图作为一种常见的动态图片格式,有时需要将其拆分成单帧图片,以便 ...

  2. python大图切成小图

    可以使用 Python 库 PIL (Python Imaging Library) 来实现切割大图片为小图片. 示例代码如下: from PIL import Image# 打开大图片 im = I ...

  3. Python小技巧:批量大图压缩成小图

    背景 客户提供了上千张30M以上的tif文件,小程序员们不注意将该图片作为网站中展示的图片.结果就是网站加载速度极慢,小朋友们开始分工进行人工裁剪了.作为很久不编程的码老汉必须出马了. 代码 利用免费 ...

  4. 图片分割和图片合成(大图切割成小图,python代码)

    目录 分割 拼接 由于后面要进行图片的分割,所以就先做了一些准备. 要分割的图片如下: 分割 思路也比较简单,代码注释比较详细,看代码就行. from cv2 import cv2 import nu ...

  5. python opencv PIL 视频分割成图片 图片合成为视频 修改图片大小(抗锯齿)

    Python代码将原有的视频分割成图片,我的例子是一帧一帧的分割 用python+opencv完成视频的分割 import cv2 #导入opencv模块 print(2) #测试是否运行 vc=cv ...

  6. python 中将大列表拆分成小列表

    一.将大列表拆分为小列表 >>> a = [1,2,3,4,5,6,7,8,9,0]>>> n = 3 >>> c= [a[i:i+n] for ...

  7. python将大文件拆分成多个小文件,同时对各小文件处理以节省时间

    # test.py import json import osroot_path = os.path.dirname(__file__)def f(x):return xtest_datas = [] ...

  8. python把一个字符串拆分成多个字段_如何把一个字符串分割成多个字符串

    展开全部 下面两种方法均可以把一个62616964757a686964616fe58685e5aeb931333363393661字符串分割成多个字符串 一.Java 知识补充String的split ...

  9. 产品狗的Python之路(1):按照行数将excel表格拆分成多个

    产品狗的Python之路 (1):使用python将excel表格拆分成多个 背景: 因公司内部数据导入系统限制每一次导入的数据行数,故经常需要将一个几万行的表格拆分成多个,费事费力,所以写了一个小程 ...

最新文章

  1. 还在为入门深度学习发愁吗?其实你只需要一周的时间
  2. ViewBag、ViewData和TempData使用方法、区别与联系
  3. 详细理解JS中的继承
  4. MapInfo常见数据格式
  5. c++大作业迷宫游戏 规定时间内完成_开卷有益 | 小学生做作业磨蹭的7个原因及对策!太准了~不得不为孩子收藏!...
  6. 【机器学习】降维技术-PCA
  7. vue 项目难点_vue项目中遇到的问题汇总
  8. 工业交换机的性能优势有哪些?
  9. 最大公约数最小公倍数
  10. NLP技术在金融资管领域的落地实践
  11. react router官方文档_利用 React 高阶组件实现一个面包屑导航
  12. Windows右键添加command(命令行)
  13. 【其他】缩小图片的文件大小
  14. 理科生的人生感悟-02-别忘了别人的痛苦 - 丰收之歌和围墙外的稻田
  15. 基于微信小程序的自驾旅游管理系统
  16. C语言:goto循环语句
  17. 高性能 JavaScriptの五 -- 快响应用户界面
  18. 海量CAD图纸哪里获取呢?
  19. mysql主从复制实验(附编译安装mysql脚本)
  20. 王家林亲授《DT大数据梦工厂》大数据实战视频“Scala深入浅出实战经典” 第46讲视频、音频和PPT下载!

热门文章

  1. Target - Neewbie shool 1cme(Acid Burn cme)
  2. Android隐私沙盒来了!
  3. 基于WFP等网络驱动实现局域网内所有设备通过代理上网
  4. 期货CTP接口与程序化(量化交易)的对接(1)
  5. Dockerfile详解1-FROM 和 RUN指令
  6. 【​观察】微软人工智能之路:不仅在领跑,更是在创造
  7. WPS Office 2019 For Linux安装及解决字体缺失问题
  8. 抗投诉服务器是什么意思
  9. Xshell 7(SSH远程终端工具) v7.0.0109 官方中文正式版(附文件+安装教程)
  10. MFC:如何利用C++使得输出文本颜色、字体多变