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

切割NGUI图集

从这里下载包文件夹http://download.csdn.net/detail/u011440375/5855535 将大图、预制、材质导入Unity,搞好相对关系 然后点击Cut 切割后的...
  • AWNUXCVBN
  • AWNUXCVBN
  • 2014年01月11日 15:42
  • 3514

切割NGUI图集工具

  • 2013年08月02日 08:28
  • 51KB
  • 下载

unity_NGUI系统学习(五)_切图SlicedSprite九宫切图

unity_NGUI系统学习(五)_切图SlicedSprite九宫切图 如何在NGUI中进行九宫切图: 图示一: 图示二: 如下世界操作效果:...
  • MaximilianLiu
  • MaximilianLiu
  • 2017年10月07日 16:13
  • 243

推荐一个自动切图/自动裁图/合并图集软件

推荐一个自动裁剪图片的软件,名字叫ShoeBox,http://www.renderhjs.net/shoebox/,支持把一张大图自动裁剪每个图块的最小透明区域,然后导出序列帧的功能。以及各种功能,...
  • egostudio
  • egostudio
  • 2015年08月20日 19:14
  • 1937

NGUI使用教程(3) 使用外部图片制作Atlas(图集)

在实际操作之前有几个概念先弄清一下. Atlas : 图集。把美术给你提供的素材,用 NGUI 的 Atlas Maker 工具,合成一张图片(准确的说,还同时生成了prefab、mat )。 Spr...
  • gtncwy
  • gtncwy
  • 2014年08月01日 14:50
  • 23084

NGUI 九宫格切图

UISprite 的 Type 选择 Sliced 选择Edit 中的 Border
  • wdsdsdsds
  • wdsdsdsds
  • 2016年09月18日 16:29
  • 2197

Unity_记分牌_效果实现(随机为例)

Unity_记分牌_效果实现(随机为例) 主要是更换图片,添加Grid Layout Group,写脚本,UI上实现: using System.Collections; using System.C...
  • MaximilianLiu
  • MaximilianLiu
  • 2017年09月18日 15:44
  • 157

Unity 导出切片精灵

假设有一张png/tga图集,导入到Unity,放置目录"Assets/Resources/UI"(UI文件夹可替换成其他的,重要的是要在"Assets/Resources/"路径下),默认为如下设置...
  • akof1314
  • akof1314
  • 2014年08月26日 12:40
  • 13247

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

unity3d将一张图片切成多张图片
  • angelsmiles
  • angelsmiles
  • 2016年01月05日 18:11
  • 4971

(NGUI)UISprite 切换图集

using UnityEngine; using System.Collections; public class SpriteAtlasTest : MonoBehaviour { ...
  • z9895512
  • z9895512
  • 2015年11月27日 10:25
  • 870
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Unity3D NGUI图集切成图片
举报原因:
原因补充:

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