对图像进行程序化处理,PhotoShop也许不是最好的那个,但是由于PS受众较广,素材较多,手头能轻松找到许多素材进行再加工,题主学习这个的原因也是为了生成深度学习所需要的数据。
- 加载图像
新建一个文本文件,后缀名设为jsx
var fileRef = new File('E:/小黄人.jpg');
var docRef = app.open(fileRef);
alert(docRef.name);
这段代码就是新建一个文件对象,并读入图像并显示文件的名字,打开PS,直接加载该脚本,效果如下:
image.png
- 修改文本图层
我们先插入一个文本(过程略),文本也是一个图层(layer)。
image.png
接着我们把这张图片保存为PSD格式,PSD文件里包有图层信息,本文保存为小黄人.psd
我们在做文本识别的数据时,肯定是希望文字多种多样的。接下来我们在JS里定位到该文本的layer并修改文本。
- 定位到文本layer
var fileRef = new File('E:/小黄人.psd');
var docRef = app.open(fileRef);
var MyTextlayer= docRef.artLayers.getByName( '这是小黄人' );
alert(MyTextlayer.name);
使用.artLayers.getByName,通过名字来定位,PS插入文本后,文本图层的名字就是文本内容,再用alert弹出该layer的名字。
image.png
- 修改文本图层的文本内容
if ( MyTextlayer.kind === LayerKind.TEXT)
MyTextlayer.textItem.contents = '这段文字被成功修改';
再修改文本图层时最好先判断它的kind属性是不是LayerKind.TEXT,只有满足这个条件才能够修改。接下来直接修改layer的.textItem.contents即可。
可以看到文字被成功修改,但是字并不在一行,这跟图层的其他属性有关,事实上,不仅文字,字号,字体都是可以修改的,这里我们先不叙述,有兴趣可以去查文档里layer的所有属性。
能够定位并修改文本,接下来就可以利用循环批量生成不同文字的图像
网友评论