2017-03-18 88 views
1

我正在寻找一个函数来加载图像并将它放置在photoshop中特定的x,y坐标处。在photoshop中加载图像文件并将其放置在特定位置

我有以下代码:

var docRef = app.activeDocument; 

function MoveLayerTo(fLayer,fX,fY) { 

var Position = fLayer.bounds; 
Position[0] = fX - Position[0]; 
Position[1] = fY - Position[1]; 

fLayer.translate(-Position[0],-Position[1]); 
} 

var doc = app.documents.add(); 
MoveLayerTo(doc, 12, 24) 

} 

但是,如果我尝试运行它,我得到:

Error 21: undefined is not an object. 

上发生的事情错在这里的任何想法和我怎样才能让我的代码工作?

回答

0

您不指定图层,而是提供完整的文档。正如你在Reference中看到的,Document没有叫bounds的成员。

此外,您正在处理一个空的图像文件(调用documents.add并使用新创建的图像),但我想你想在活动文档上工作。

您可能想要做的是选择提供的文档的最顶层。无论如何,如果这是一个普通的图像(如PNG或JPEG),(唯一)现有图层被锁定(即你不能翻译它),你不能解锁背景层,所以你应该:

  • 第一复制图层
  • 删除原始层
  • 翻译您层
  • 将图像缩小到只有一个背景图像
var layerOrig = docRef.layers[0]; 
var layerCopy = layerOrig.duplicate(); 
layerOrig.remove(); 
MoveLayerTo(layerCopy, 12, 24) 
docRef.flatten(); 
// and maybe you want to save 

小心:做这个只与平面图像(如巴纽,JPEG格式)但你最终拼合图像(其降低到一个单一的背景层不这样做,与.PSD图片)。如果您然后保存该图像,则所有图层信息都会丢失!

相关问题