2014-04-01 33 views
1

我有几个图像水印。每个图像都是不同的分辨率和尺寸。我正尝试将图像大小调整为300 x 225,并在调整大小后的图像底部显示文字。一切工作正常,除了水印尺寸不一致。 原来较高分辨率的图像具有较小的水印,较低的分辨率具有很大的水印。我将文本图层添加到调整大小的图像作为水印。我想我在添加文本图层时缺少一些设置。请帮忙。photoshop javascript图像调整大小和水印

ResizeImage(); 
    CreateWatermark(); 

    function ResizeImage() 
    { 
     var MedWidth = UnitValue(300,"px"); 
     var MedHeight = UnitValue(225,"px"); 
     activeDocument.resizeImage(MedWidth,null,null,ResampleMethod.BICUBIC); 
     activeDocument.resizeCanvas(MedWidth,MedHeight,AnchorPosition.MIDDLECENTER); 
} 



function CreateWatermark() 
{ 
    var fface = "Arial-BoldMT" 
    var size =6 



    // Add a new layer in the new document 
    var currentDoc = activeDocument; 
    var artLayerRef = app.activeDocument.artLayers.add() 

    artLayerRef.kind = LayerKind.TEXT 


    textColor = new SolidColor(); 
    textColor.rgb.red = 245; 
    textColor.rgb.green = 7; 
    textColor.rgb.blue = 7; 


    textItemRef = artLayerRef.textItem 
    textItemRef.font = fface; 
    textItemRef.contents = 'picture provided by landlord'; 
    textItemRef.color = textColor; 
    textItemRef.size = size 
    textItemRef.position = new Array(currentDoc.width-200, currentDoc.height-10) 
    activeDocument.activeLayer.name = "watermark"; 
    activeDocument.activeLayer.textItem.justification = Justification.LEFT; 
} 
+0

我不完全确定这与JavaScript有什么关系? –

+1

请提供您所写的任何javascript代码,否则您的问题将被关闭。 – mpm

+0

@GeorgeMauer:Photoshop有一个[JavaScript引擎](http://www.adobe.com/devnet/photoshop/scripting.html),可让您自动执行应用中的大部分操作。 – josh3736

回答

0

最有可能的,你设置TextItem的大小点,你的图像的PPI变化。点数是取决于文档的PPI的度量单位。这是以磅为单位的给定尺寸的文本在打印时是相同的物理尺寸(以英寸为单位)。

有两种方法可以让你的文字图层的大小要一致:

  • 使用一致的PPI。

    Document#resizeImage的第三个参数是分辨率(PPI)。尝试将其设置为96(计算机显示器的传统DPI)。

    activeDocument.resizeImage(MedWidth, null, 96, ResampleMethod.BICUBIC); 
    

    使用一致的DPI,您的字体大小也应该一致。

  • 以像素为单位设置文本图层的大小而不是点。

    TextItem#size可以设置为UnitValue,它允许您指定要使用的度量单位。像素总是像素,不依赖于文档的PPI。

    textItemRef.size = new UnitValue(15, 'px'); 
    

要么应该工作;你只需要使用一个。我会倾向于第一种选择。

+0

工作得很好,一致的PPI。非常感谢。 – user3486450