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杀死一个线程的方法
Sep 06 Python
python数据结构之链表的实例讲解
Jul 25 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
Selenium控制浏览器常见操作示例
Aug 13 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
python3 线性回归验证方法
Jul 09 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
python3下pygame如何实现显示中文
Jan 11 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
python将音频进行变速的操作方法
Apr 08 Python
Python ellipsis 的用法详解
Nov 20 Python
Python机器学习应用之基于线性判别模型的分类篇详解
Jan 18 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
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
php float不四舍五入截取浮点型字符串方法总结
2013/10/28 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
PHP函数strip_tags的一个bug浅析
2014/05/22 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
jquery实现的带缩略图的焦点图片切换(自动播放/响应鼠标动作)
2013/01/23 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
js单例模式详解实例
2013/11/21 Javascript
JavaScript设计模式之建造者模式介绍
2014/12/28 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
js表单登陆验证示例
2016/10/19 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
js调用刷新界面的几种方式
2017/05/03 Javascript
javaScript之split与join的区别(详解)
2017/11/08 Javascript
TypeScript开发Node.js程序的方法
2019/04/30 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
python实现html转ubb代码(html2ubb)
2014/07/03 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
python读出当前时间精度到秒的代码
2019/07/05 Python
详解Python Matplotlib解决绘图X轴值不按数组排序问题
2019/08/05 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
nohup的用法
2014/08/10 面试题
投标单位介绍信
2014/01/09 职场文书
售后服务承诺书
2014/03/26 职场文书
单位租房协议书样本
2014/10/30 职场文书
JS setTimeout与setInterval的区别
2022/04/20 Javascript