问题是这样,在三维软件 把模型切割,给切割的部件排上序号 如 :tianji_1-431_bujian13.png

中间一段数据就是表示的 1.431 该数据之后 会到ps总排层使用

在ps排层出三维渲染数据 只要是二次处理图像

之后在到flash中条动画 该数据 用来在flash中排层

但是ps 对部件排层使用了 1.431 :tianji_1-431_bujian13.png  字典方法,

时候对 1.431  进行sort 但是 是使用数据交换 界面不断刷新太卡

使用的方法是该文件图层有序的输出到另一个文档中 ,

之前使用的代码是 :

///利用现有脚本功能
/// 对名称进行排序 建立字典 使用层级移动完成
//$.level = 1
//该函数完成对层级名称收集
function getLayerName ()
{
var doc =activeDocument //app.documents[1] // 一般使用这个 是当前激活的层级关系 很重要
var clayer = doc.layers.length
var newname = new Array ()
for (var i = 0 ; i< clayer ; i ++){
temname = doc.layers[i].name
newname.push (temname)
}
return newname
}
// 该方法是对现有层级名称使用分隔符号分成名称转成数组数组
// 里面是 字符串数子 不转换为了后面字典方便
function getLayernum ()
{
var newNum = new Array()
var conLayerNames = getLayerName()
var i = 0
for (i ; i<conLayerNames.length; i++){
try{
var cic = conLayerNames[i].split("_")
var cicnum = cic[1].split("-")
newNum.push ((cicnum[0] +"."+cicnum[1]))
}catch(e)
{
newNum.push (i+"") // 出了问题给个假序号
}
}
return newNum
}
// 该方法主要是对 getLayernum 字符串形式 转成float 进行排序
function getLayernumfloat (){
var coc = getLayernum()
var tem = new Array ()
for (var i=0 ; i <coc.length ; i ++){
var ffl = parseFloat (coc [i])
tem.push (ffl)
}
return tem
} // 只要是测试
//
//只要是创建字典 getLayernum 位键 getLayerName 是value
// 要处理的键 value 一定是相等的 里面是一个 key value 数组
function CreateDit ()
{
var keys = getLayernum() // 字符串处理
var values = getLayerName() // 层级的名称
var conoob = new Array () // 用于收集对象
// 这样的表示方法就是一个字典
// 可以循环出来键 通过键访问value
for (var i = 0 ; i <keys.length ; i ++){
conoob[keys[i]] = values[i]
}
return conoob
} /*
建立好后字典数组 下来是对 提取数字排序
// 现在提前分享排序应该是从大道小
l = a.sort(function compare(a,b){return -(a-b);}); 实现反向处理
var tes = CreateDit() // 激活设置
var cii= app.documents[1]
var cc = app.activeDocument = cii
// 通过名称找到层
var d = "tianji_1-109_bujian31.png"
var c = app.activeDocument.layers[d]
alert (c.name)
*/
//这里只要是实现对图层排列操作
function engineStart (){
var docCull =activeDocument //当前的文档折后用于切换文档使用
var h = docCull.height
var w = docCull.width
var connum = getLayernumfloat() // 转换好的float 数组 var endSort = connum.sort(function compare(a,b){return (a-b);}); // 这里面就是正确的排除 var tes = CreateDit() // 建立字典
// alert(endSort)
// 在这里新建文档
var newdoc = app.documents.add( w, h , 72) for (var i = 0 ; i < endSort.length; i++)
{
var layerRef= newdoc.layers[0]
app.activeDocument =docCull
var strFloat = endSort[i]+"" // 用于当做字典的键
var pngImagelayer =tes[strFloat] // 这里是层的名称
// 选择层 var c = docCull.layers[pngImagelayer]
docCull.activeLayer = c c.duplicate (layerRef , ElementPlacement.PLACEBEFORE)
//docCull.flatten()
/*
docCull.selection.selectAll(true)
docCull.selection.copy()
app.activeDocument =newdoc
newdoc.paste()
*/ /*
使用从新建立文档思路
*/ //alert(pngImagelayer)
//var layerObj = app.activeDocument.layers[pngImagelayer]// 层的对象
//var layerObjAfter = app.activeDocument.layers[pngImagelayerAfter]// 层的对象
//layerObj.moveAfter (layerObjAfter )
// layerObj.move (layerObjAfter,ElementPlacement.PLACEAFTER)
} }// end engineStart()

  

docCull.selection.selectAll(true)
docCull.selection.copy()
app.activeDocument =newdoc
newdoc.paste()

发现从当前层拷贝到另一个文档的图层 会出现资源始终在中心位置

后来使用了 duplicate

这个是赋值图层他的好处是 目录可以放到任意打开的文档

c.duplicate (layerRef , ElementPlacement.PLACEBEFORE)

完美接口  排层问题

关于使用 ps脚本来处理图片的排层问题的更多相关文章

  1. 开博第二篇:记一个利用JavaScript,编写PS脚本,开发图片量产工具

    背景:身在一个有实业的电商公司,设计部的妹子们总是会有做不完的商品图片,当然了,要是做点有技术含量的美化工作也罢,但是最近她们很是无聊,总是要做一些重复性的工作,就比如如题所说的,图片量产,量产什么呢 ...

  2. PS如何批量处理图片

    喜爱摄影的朋友可能都有这样的体会,相机里面存了大量的图片,一般都是2048×1536或者更大像素的照片,每张都有1M以上,如果设置的清晰度高,则照片就更大,这样的图片是无法上传到博客中的(博客要求每张 ...

  3. PowerShell_零基础自学课程_3_如何利用Powershell ISE调试PS脚本

    微软在推出PS的同时,没有忘记其一贯的作风,什么东东都弄一个IDE环境,这不微软没有忘记给PS也来一个IDE的环境, 通过这个IDE环境,可以建立psl文件,可以调试psl文件. 1.IDE界面 我们 ...

  4. 利用PS脚本自动删除7天之前建立的目录-方法1!

    目前有一个备份目录,目录名称为d:\temp\bak目录,在这目录下,根据备份要求,自动生成了如下目录的列表: 20131012 20131011 20131010 20131009 20131008 ...

  5. PS脚本获取网络适配器状态

    1. Get-WmiObject -Class Win32_NetworkAdapterConfiguration ` -filter "IPEnabled = $true" 2. ...

  6. 利用PS自动切图、支持svg且支持icoMoon——再也不用四处去转格式了

    今天想导出svg格式的图片支持webFont,结果AI打不开了,文件好像损坏了,于是就想办法在PS里面导出. 网上搜索到一篇文章,腾讯的 http://isux.tencent.com/ps-phot ...

  7. HID高级攻击姿势:利用PowerShell脚本进行文件窃取

    0×01 引言 又到了期中考试了,我又要去偷答案了,一直发现远程下载运行exe的方式不太好,容易报毒所以这里打算用ps脚本. 0×02 关于HID HID是Human Interface Device ...

  8. SCCM2012分发脚本

    1.分发批处理脚本 命令行:script.bat 2.分发PowerShell脚本 命令行:PowerShell.exe -executionpolicy unrestricted -file .\s ...

  9. 青瓷qici - H5小游戏 抽奖机 4 运行脚本编写

    hello,小伙伴们,我们来继续编写相关的程序. 前几章我们已经基本把界面等问题搞定了,现在我们就来写脚本让整个流程统一起来. 看看我们现在有了什么?一个界面还有他的层次结构 青瓷界面绑定UI.js创 ...

随机推荐

  1. Python面试题(十二)

    1.利用Python执行shell脚本取得返回结果 import subprocess result = subprocess.getoutput('dir') 答案 2.用Python将" ...

  2. logback日志分开纪录

    LogBack 日志 文件分开纪录 在处理Log中,我们一般讲Log分为一下几类,Debug类型,Error类型,Info类型 等等.. 那么使用LogBack如何分开日志处理 代码如下: 当然也可以 ...

  3. Dubbo 基础教程

    原文地址:Dubbo 基础教程 博客地址:http://www.extlight.com 一.前言 当服务越来越多时,容量的评估,小服务资源的浪费等问题逐渐显现,此时需要增加一个调度中心基于访问压力实 ...

  4. IEEE 754 浮点数在计算机中的表示方法

    IEEE二进制浮点数算术标准(IEEE 754)是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用.这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denorma ...

  5. excel 条件格式 心的

    例1: 图1 图2 $G$16 ≠G16  用G16就可以用格式刷拖动,$G$16用格式刷刷到其它单元格保持不变,判断单元格函数 ISBLANK(G16)=TRUE

  6. java 面向对象 — 封装

      

  7. ThinkJava-标准IO

    1 从标准输入中读取 按照标准1/0模型, Java提供了System.in.System.out和System.err.在整本书里,我们已经 看到了怎样用System.out将数据写出到标准输出,其 ...

  8. Java 从原字符串中截取一个新的字符串 subString()

    Java 手册 substring public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串.该子字符串从指定索引处的字符开始,直 ...

  9. CFGym 101158B(巨坑题)

    前言:无话可说,看懂题意就没什么难度了. 题意:对于[0, 9999]区间内的每一个数b,通过输入的转换表,得到一个e值,把这个值添加到b的后面,得到一个五位数c.对于c的每一位,从0枚举到9,得到5 ...

  10. 温故而知新-XML和WEB服务器

    1 xml除了空元素外都是有开始标记和结束标记的 2 XML可以设置自己的标记