将图集变成小图片导出


可以将图集裁剪成小图片导出,不会使用ps可以这样将自己喜欢的小图片导出。
资源截图
代码片段和文件信息
#define USE_NGUI
#if USE_NGUI

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;

using UnityEditor;

using FreeImageAPI;

public class AtlasUtil 
{
    class frame
    {
        public string name;
        public Rect frame;
        public bool rotated;
        public bool trimmed;
        public Rect spriteSourceSize;
        public Vector2 sourceSize;
    }

    class Atlasmeta
    {
        public string app;
        public string version;
        public string image;
        public string format;
        public Vector2 size;
        public float scale;
        public string smartupdate;
    }

    class AtlasImage
    {
        public Listame> frames = new Listame>();
        public Atlasmeta meta = new Atlasmeta();
    }

    public static void Export(UIAtlas atlas)
    {
        Export(atlas @“E:\tmp\“);
    }

    public static void Export(UIAtlas atlas string folder)
    {
        AtlasImage atlasImage = new AtlasImage();

        atlasImage.meta.app = “http://www.texturepacker.com“;
        atlasImage.meta.version = “1.0“;
        atlasImage.meta.image = atlas.spriteMaterial.mainTexture.name + “.png“;
        atlasImage.meta.format = “RGBA8888“;
        atlasImage.meta.size = new Vector2(atlas.spriteMaterial.mainTexture.width atlas.spriteMaterial.mainTexture.height);
        atlasImage.meta.scale = 1.0f;
        atlasImage.meta.smartupdate = ““;

        foreach (UIAtlas.Sprite sp in atlas.spriteList)
        {
            frame frame = new frame();
            frame.trimmed = false;
            frame.rotated = sp.rotated;

            int frameX = Mathf.RoundToInt( sp.outer.xMin );
            int frameY = Mathf.RoundToInt(sp.outer.yMin);
            int frameW = Mathf.RoundToInt(sp.outer.width);
            int frameH = Mathf.RoundToInt(sp.outer.height);

            if ( sp.rotated )
            {
                int tmp = frameW;

                frameW = frameH;
                frameH = tmp;
            }
            frame.frame = new Rect(frameX frameY frameW frameH);
            frame.spriteSourceSize = new Rect(0 0 frameW frameH);
            frame.sourceSize = new Vector2(frameW frameH);
            frame.name = sp.name + “.png“;

            atlasImage.frames.Add(frame);
        }

        folder = GetFolder(folder atlas.spriteMaterial.mainTexture.name);

        Save(atlasImage folder atlas.spriteMaterial.mainTexture.name);

        SplitImage(atlas.spriteMaterial.mainTexture atlasImage folder);

        Debug.Log(“Done Export atlas “ + atlas.name);
    }

    static string GetFolder(string rootDir string texname)
    {
        if (!Directory.Exists(rootDir))
            Directory.CreateDirectory(rootDir);

        string folder = Path.Combine(rootDir texname);
        if (!Directory.Exists(folder))
            Directory.CreateDirectory(folder);


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    ..A..H.       178  2015-04-26 21:45  AtlasWindow.cs.meta

     文件    3374592  2014-03-23 15:03  FreeImage.dll

    ..A..H.        90  2015-05-23 07:54  FreeImage.dll.meta

     文件     189440  2015-02-08 17:58  FreeImageNET.dll

    ..A..H.       153  2015-05-23 07:54  FreeImageNET.dll.meta

     文件      11165  2015-04-26 22:01  AtlasUtil.cs

    ..A..H.       178  2015-04-26 21:45  AtlasUtil.cs.meta

     文件       1642  2015-04-27 23:07  AtlasWindow.cs

----------- ---------  ---------- -----  ----

              3577438                    8


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)