论坛帮助 |
社区圈子 |
日历事件 |
2011-11-22, 16:20 | 只看该作者 #19 | ||
|
|||
正式会员
等级: 四袋长老
|
引用:
代码:
(function (){ var op = new TiffSaveOptions; op.imageCompression = TIFFEncoding.TIFFLZW; app.documents.length == 1 && splitChannels (activeDocument); function splitChannels (doc) { var fn = doc.name, fp = doc.path, md = doc.mode, base = fn.replace(/\.\w{2,4}$/, ''), F = function (doc, i){ doc.saveAs(File(fp + '/' + base + '-' + i + '.tif'), op); doc.close(SaveOptions.DONOTSAVECHANGES); }, i = null; executeAction(charIDToTypeID( "SplC" ), new ActionDescriptor(), DialogModes.NO); if (md == DocumentMode.CMYK) { F(app.documents[fn + '_K'], 1); F(app.documents[fn + '_C'], 2); F(app.documents[fn + '_M'], 3); F(app.documents[fn + '_Y'], 4); i = 5; while (app.documents.length) {F(app.documents[0], i), i++} } else if (md == DocumentMode.MULTICHANNEL) { i = app.documents.length; for (; --i > -1;F(app.documents[i], i + 1)); } } })(); 如果需要进一步完善,请回复。 |
||
2011-11-22, 19:47 | 只看该作者 #21 | ||
|
|||
正式会员
等级: 六袋长老
|
引用:
|
||
2011-11-22, 20:00 | 只看该作者 #22 | ||
|
|||
正式会员
等级: 四袋长老
|
代码:
(function (){ var fA = File.openDialog ('选择 tif 文件', '*.tif', 1); f= fA[0].parent, op = new TiffSaveOptions(), i = 0; op.imageCompression = TIFFEncoding.TIFFLZW; // 设置LZW压缩 for (; i < fA.length; i ++){ process (fA[i]); } function process (base) { var fn = base.name.split('_')[0], PMS = unescape(f.getFiles (fn + '*.tif').toString().match(/(Pantone.+?)\.tif/)[1]), F = function (str){return File(f + '/' + fn + '_' + str +'.tif')}, _C = F('Cyan'), _M = F('Magenta'), _Y = F('Yellow'), _K = F('Black'), _S = F(PMS), loop = [_M, _Y, _K, _S], mDoc = app.open(_C), i = 0, doc; mDoc.changeMode(ChangeMode.MULTICHANNEL); for (; i < 4; i++){ alert(loop[i]) doc = app.open(loop[i]); doc.channels[0].duplicate (mDoc); doc.close(SaveOptions.DONOTSAVECHANGES); } mDoc.channels[4].name = PMS.toUpperCase(); mDoc.channels[4].kind = ChannelType.SPOTCOLOR; mDoc.changeMode(ChangeMode.CMYK); mDoc.saveAs(F('合并'), op); } })(); 使用方法:选中需要合并的5个文件中的任意一个,可以按住shift多选(另外需合成的文件之一) 回楼上: 抱歉,我没有CS2,仅在CS5测试没问题。 我看了一下你的报错,你可以装上ScriptListener.8li,然后运行一次分离通道命令,将得到的ScriptingListenerJS.log文件贴上来,我改一下就好了 |
||
右列会员因为此帖价值甚高向 animalia 表示感谢: |
xiaoqing639441 (2012-01-04)
|
2011-11-22, 20:47 | 只看该作者 #24 | ||
|
|||
正式会员
等级: 六袋长老
|
var id1 = charIDToTypeID( "Opn " ); var desc1 = new ActionDescriptor(); var id2 = charIDToTypeID( "null" ); desc1.putPath( id2, new File( "C:\\Documents and Settings\\Administrator\\桌面\\Jy10-1191dy\\Jy10-1191dy.tif" ) ); executeAction( id1, desc1, DialogModes.NO ); |
||
2011-11-22, 22:30 | 只看该作者 #25 | ||
|
|||
正式会员
等级: 四袋长老
|
代码:
(function (){ var op = new TiffSaveOptions; op.imageCompression = TIFFEncoding.TIFFLZW; app.documents.length == 1 && splitChannels (activeDocument); function splitChannels (doc) { var fn = doc.name, fp = doc.path, md = doc.mode, base = fn.replace(/\.\w{2,4}$/, ''), F = function (doc, i){ doc.saveAs(File(fp + '/' + base + '-' + i + '.tif'), op); doc.close(SaveOptions.DONOTSAVECHANGES); }, i = null; // 下面这行适用于CS5 版,CS2试试改为: executeAction(charIDToTypeID( "Opn " ), new ActionDescriptor(), DialogModes.NO); executeAction(charIDToTypeID( "SplC" ), new ActionDescriptor(), DialogModes.NO); i = app.documents.length; if (md == DocumentMode.CMYK) { for (; --i > -1; F(app.documents[i], i > 3 ? i +1 : [2,3,4,1][i])); } else if (md == DocumentMode.MULTICHANNEL) { for (; --i > -1; F(app.documents[i], i + 1)); } } })(); |
||
2011-11-23, 00:15 | 只看该作者 #26 | ||
|
|||
正式会员
等级: 六袋长老
|
引用:
|
||
2011-11-23, 11:01 | 只看该作者 #28 | ||
|
|||
正式会员
等级: 六袋长老
|
引用:
cs5是可以的。。。cs2不可以。。 // ======================================================= var id3 = charIDToTypeID( "SplC" ); executeAction( id3, undefined, DialogModes.NO ); |
||