ps自动化入门(1)

发布于 2021-01-08 01:37

ps不仅用于图片的手动操作,自动化方面也很方便。像office软件的VBA一样,ps也有自己的对象模型(DOM),使用第三方软件vb/vc等都可以自动化操作。最简单的就是自动修改文字内容了,怎么做呢?
以VB2010为例,首先,找到在项目管理器里,添加对ps对象库的引用
获得ps应用程序对象psApp = New Photoshop.Application,如果当前没有开启ps,会启动程序,如果已开启,直接获得应用对象。
下一步获得当前文档,psDoc = psApp.ActiveDocument;也可以通过psApp.open方法打开一个文档;或从当前打开文档中选择psApp.Documents(0)
文档的下一级叫做artLayer,就是图层了。不同类型的图层有不同的属性和方法。文本层的文字内容通过artLayer.TextItem.Contents访问和修改。下面是简单实现。
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click        Dim psApp = New Photoshop.Application        Dim psDoc = psApp.ActiveDocument        '设置当前操作默认单位为像素        psApp.Preferences.RulerUnits = Photoshop.PsUnits.psPixels        '查看所有图层的名称        For Each lay In psDoc.ArtLayers            Debug.Print(lay.name)        Next        '通过图层名称获得图层        Dim k = psDoc.ArtLayers("test")        '获取文字层内容        MsgBox(k.TextItem.Contents)        '修改文字层内容        k.TextItem.Contents = Now.ToString        '图层旋转30        k.Rotate(30)        '图层缩放80%        k.Resize(80, 80)        '复制当前程序界面,粘贴到ps中        Dim a = New Bitmap(Width, Height)        Dim bm As New System.IO.MemoryStream()        Me.DrawToBitmap(a, New Rectangle(0, 0, Width, Height))        a.Save(bm, Drawing.Imaging.ImageFormat.Jpeg)        Clipboard.SetImage(Image.FromStream(bm))        psDoc.Paste()    End Sub

应用程序也可将图片对象复制到粘贴板,到ps中粘贴,你会了吗?

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材