Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
photoshop javascript图像大小调整和水印_Javascript_Photoshop - Fatal编程技术网

photoshop javascript图像大小调整和水印

photoshop javascript图像大小调整和水印,javascript,photoshop,Javascript,Photoshop,我有几个图像水印。每个图像都有不同的分辨率和大小。我正在尝试将图像调整为300 x 225,并在调整后的图像底部添加带有文字的水印。除了水线大小不一致外,其他一切都正常。 最初,高分辨率图像具有较小的水印,而低分辨率图像具有非常大的水印。我正在将文本层作为水印添加到调整大小的图像中。我想我在添加文本层时缺少了一些设置。请帮忙 ResizeImage (); CreateWatermark( ); function ResizeImage() { va

我有几个图像水印。每个图像都有不同的分辨率和大小。我正在尝试将图像调整为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;
}

最有可能的情况是,您正在以点为单位设置
TextItem
的大小,并且图像的PPI不同。点是一种计量单位,取决于文档的PPI。因此,在打印时,给定大小(以点为单位)的文本的物理大小(以英寸为单位)相同

有两种方法可以使文本层的大小保持一致:

  • 使用一致的PPI。

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

    使用一致的DPI时,字体大小也应一致

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

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

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

两者都应该有效;你只需要用一个。我倾向于第一种选择。

我根本不确定这与javascript有什么关系?请提供您编写的javascript代码,或者您的问题将被关闭。@GeorgeMauer:Photoshop有一个可以让您自动执行应用程序中大多数操作的程序。啊,我看到@josh3736在发表评论时,这个问题中没有代码,与一致的PPI很好地配合。谢谢。
textItemRef.size = new UnitValue(15, 'px');