photoshop javascript图像调整大小和水印

时间:2014-04-01 18:52:32

标签: javascript photoshop

我有几张水印图片。每个图像的分辨率和大小不同。我正在尝试将图像调整为300 x 225,并在调整大小的图像底部添加文本水印。一切都很好,除了水印的大小不一致。 最初分辨率较高的图像具有较小的水印,较低的分辨率具有非常大的水印​​。我将文本图层添加到调整大小的图像作为水印。我想我在添加文本图层时缺少一些设置。请帮忙。

    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;
}

1 个答案:

答案 0 :(得分: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');
    

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