我有几张水印图片。每个图像的分辨率和大小不同。我正在尝试将图像调整为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;
}
答案 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');
要么应该工作;你只需要使用一个。我倾向于第一种选择。