Unity3D NGUI图集切成图片

原创 2015年07月08日 13:56:13

Unity3D NGUI图集切成图片

有的时候用NGUI做好了图集,那么原图就没有必要放到Unity3D中了,严重影响Unity3D的速度。但是突然右想把图片弄出来。当然NGUI是提供了图集中单个图片另存,但是如果图片太多,比较费时间,所以用python写了个切图片的工具代码如下:

Python环境:2.7 测试通过,需要依赖Image库
NGUI版本:3.7

#coding:utf-8
#unity 图集裁剪成png
#Author:Wiker Yong
#Date:2015-07-08

import os
import sys
import argparse
import Image


def middle(str='',left='',right=''):
    # print str.index(right,str.index(left)+1)
    return str[str.index(left)+len(left):str.find(right,str.find(left)+1)]

parser = argparse.ArgumentParser(description='Unity Atlas cut to pngs')
parser.add_argument("-f",dest='file',help='cut prefab,no ext name')
parser.add_argument("-p",dest='path',help='Output path')
args = parser.parse_args()

out_path=''
if args.path != None and not os.path.exists(args.path):
    os.makedirs(args.path)
    out_path = args.path

if args.file == None:
    parser.print_help()
    sys.exit(0)

prefab_path = args.filepng
prefab_file = open(prefab_path+'.prefab')
pngname=''
x=0
y=0
w=0
h=0
while 1:
    line= prefab_file.readline()
    if not line:
        break;

    if line.startswith('  - name: '):
        pngname=middle(line,'  - name: ','\r\n')

    if line.startswith('    x: '):
        x=int(middle(line,'    x: ','\r\n'))

    if line.startswith('    y: '):
        y=int(middle(line,'    y: ','\r\n'))

    if line.startswith('    width: '):
        w=int(middle(line,'    width: ','\r\n'))

    if line.startswith('    height: '):
        h=int(middle(line,'    height: ','\r\n'))
        print pngname,x,y,w,h
        img = Image.open(prefab_path+'.png')
        region = (x,y,w+x,h+y)
        cropimg=img.crop(region)
        cropimg.save(out_path+'/'+pngname+'.png')

后续再整个Unity反编译,还原成图片了,敬请关注!

版权声明:本文为博主原创文章,未经博主允许不得转载。请认准:http://blog.csdn.net/wiker_yong 举报

相关文章推荐

Algorithm(三):快速排序

快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部...

NGUI 九宫格切图

UISprite 的 Type 选择 Sliced 选择Edit 中的 Border

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

NGUI九宫格反向切割拉伸

项目中有个新手引导,要求做一个圆圈,中间透明,四周黑色,取一定的Alpha值,由于游戏设定分辨率为1136*640,只是一个圆圈,如果使用大图的话未免浪费,而且由于新手引导是有策划配置修改,用大图的话...
  • suifcd
  • suifcd
  • 2015-07-06 22:06
  • 1344

Unity3D开发(四):NGUI纹理九宫格拉伸

不论是游戏中的UI,还是应用中的UI,纹理九宫格拉伸都是必不可少的,因为采用这种拉伸方式,可以最大化的节省纹理资源,还能保证良好的表现效果! 1.原理 把纹理用4条线分割成...

Unity3D NGUI中使用.9png

1.将PNG加入图层(无需9patch 编辑),选择Edit。 2.设置不拉伸区域。 3.使用时设置SprliteType。 4.效果展示。

NGUI使用心得之使用TexturePacker创建图集

1.什么是TexturePacker  TexturePacker是一款非常不错的图集制作工具,和NGUI自带的图集制作比较,其生成的图集更加紧凑,占用空间更加的小。下面图NGUI_Chat...

NGUI sprite 裁剪到其他图片sprite

最近发现在使用 NGUI 的图集.时. 两张相邻的图片A,B 可能会影响到对方的显示. 比如A在图集的Texture中 位置处于B的正上方.紧挨着. 当我们使用B的图片的时候,B的上部分边缘可能会显示...

unity3d将一张图片切成多张图片

unity3d将一张图片切成多张图片

Unity3D 使用Texturepacker打包工具制作NGUI(Atlas)图集

1、首先下载Texturepackage工具,网上有破解版的,也可以到官网下载使用免费版,https://www.codeandweb.com/texturepacker/,接着就是简单的安装不在过多...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)