Ubuntu下使用Python实现游戏制作中的切分图片功能


Posted in Python onMarch 30, 2018

本文实例讲述了Ubuntu下使用Python实现游戏制作中的切分图片功能。分享给大家供大家参考,具体如下:

why

Ubuntu下使用Python实现游戏制作中的切分图片功能

拿到一个人物行走的素材,要用TexturePacker打包。TexturePacker打包后,助于游戏加载图片效率,且比较好管理。
目前得到一张整图,无法直接导入到TexturePacker。

what

切片:使用切片将源图像分成许多的功能区域。

how

1 ubuntu下图片处理软件 GIMP: 画好参考线后, 点击 滤镜->WEB ->切片

2 python + PIL  (pip install pillow 安装)

第一种手动太麻烦,不好精细自动化操作。

采用第二种

# coding=utf-8
from PIL import Image
import os
def mkdir(path):
  # 去除首位空格
  path=path.strip()
  # 去除尾部 \ 符号
  path=path.rstrip("\\")
  # 判断路径是否存在
  # 存在   True
  # 不存在  False
  isExists=os.path.exists(path)
  # 判断结果
  if not isExists:
    # 如果不存在则创建目录
    print path+' 创建成功'
    # 创建目录操作函数
    os.makedirs(path)
    return True
  else:
    # 如果目录存在则不创建,并提示目录已存在
    print path+' 目录已存在'
    return False
cnt = 0
imageName = 'mageStand.png'
pathName = 'mageStand'
img = Image.open(imageName)
ori_w,ori_h = img.size
row = 4
col = 4
for j in range(0, col):
  Y = j*ori_h/col
  Y_end = Y + ori_h/col
  for i in range(0, row):
    X = i*ori_w/row
    X_end = X + ori_w/row
    print X, X_end
    if 8 == cnt:
      pathName+="adv"
      cnt = 0
    mkdir(pathName)
    fileName = '%s/a_%d.png' %(pathName, cnt)
    img.crop((X, Y, X_end, Y_end)).save( fileName )
    cnt+=1

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python不带重复的全排列代码
Aug 13 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
python去除文件中空格、Tab及回车的方法
Apr 12 Python
numpy添加新的维度:newaxis的方法
Aug 02 Python
详解用Python练习画个美队盾牌
Mar 23 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
python对验证码降噪的实现示例代码
Nov 12 Python
查看keras的默认backend实现方式
Jun 19 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
详解Python中openpyxl模块基本用法
Feb 23 Python
numpy array找出符合条件的数并赋值的示例代码
Jun 01 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
Apr 23 #Python
python+opencv识别图片中的圆形
Mar 25 #Python
python中的内置函数max()和min()及mas()函数的高级用法
Mar 29 #Python
python学习入门细节知识点
Mar 29 #Python
Python实现加载及解析properties配置文件的方法
Mar 29 #Python
Python读取properties配置文件操作示例
Mar 29 #Python
Python实现读取Properties配置文件的方法
Mar 29 #Python
You might like
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
jQuery 性能优化指南(3)
2009/05/21 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
javascript 解决浏览器不支持的问题
2016/09/24 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
Vue实现带进度条的文件拖动上传功能
2018/02/23 Javascript
node实现基于token的身份验证
2018/04/09 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
一看就会的vuex实现登录验证(附案例)
2020/01/09 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
深入理解NumPy简明教程---数组2
2016/12/17 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
基于python模拟TCP3次握手连接及发送数据
2020/11/06 Python
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
销售顾问岗位职责
2014/02/25 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
小学生倡议书范文
2014/05/13 职场文书
医生见习报告范文
2014/11/03 职场文书
个人先进材料范文
2014/12/30 职场文书
Java实现学生管理系统(IO版)
2022/02/24 Java/Android
SpringBoot整合Minio文件存储
2022/04/03 Java/Android
Go并发4种方法简明讲解
2022/04/06 Golang