图片操作

本节介绍图片的创建和几何变换。

添加图片

使用Shape对象的AddPicture方法从现有文件创建图片。 该方法返回一个表示新图片的Shape对象。该方法的语法格式为:

code.vba
sht.api.Shapes.AddPicture(FileName,LinkToFile,SaveWithDocument,Left,Top,Width,Height)

其中,sht为工作表。各参数的意义如表5-13中所示。

表5-13 AddPicture方法各参数的意义

名 称 必需/可选 数据类型 说 明
FileName 必需 String 图片文件名
LinkToFile 必需 MsoTriState 设置为False时,使图片成为文件的独立副本,不链接。设置为True时将图片链接到创建它的文件
SaveWithDocument 必需 MsoTriState 将图片与文档一起保存。使用False仅将链接信息存储在文档中。 使用True将链接的图片与插入到的文档一起保存。 如果LinkToFile的值为 False,则此参数必须为 True
Left 必需 Single 图片左上角相对于文档左上角的位置 (以磅为单位)
Top 必需 Single 图片左上角相对于文档顶部的位置(以磅为单位)
Width 必需 Single 图片的宽度, 以磅为单位 (输入-1 可保留现有文件的宽度)
Height 必需 Single 图片的高度, 以磅为单位 (输入-1 可保留现有文件的高度)

本示例将一张图片添加到工作表sht中,该图片链接到创建它的文件, 并与工作表sht一起保存。

【Excel VBA】

示例文件的存放路径为Samples\ch17\Excel VBA\图片.xlsm。

code.vba
Sub Test()
  ActiveSheet.Shapes.AddPicture "D:\picpy.jpg", True, True, 100, 50, 100, 100
End Sub

运行过程,生成图5-23所示图片。

【Python】

在Python Shell窗口输入:

code.python
>>> sht.api.Shapes.AddPicture(r"D:\picpy.jpg", True, True, 100, 50, 100, 100)

生成图5-23所示图片。

Document Image

图5-23 创建图片

图片的几何变换

5.2节介绍了图形的几何变换,使用Shape对象提供的方法,可以对给定的图形进行平移变换、旋转变换、比例变换和对称变换。在实现方法上,图片几何变换的完全相同。

下面利用指定文件创建图片后,对它连续进行旋转变换和水平对称变换。

【Excel VBA】

示例文件的存放路径为Samples\ch17\Excel VBA\图片几何变换.xlsm。

code.vba
Sub Test()
  Dim shp As Shape
  Set shp = ActiveSheet.Shapes.AddPicture("D:\picpy.jpg", _
                                True, True, 100, 50, 100, 100)
  shp.IncrementRotation 30  '绕中心顺时针方向旋转30度
  shp.Flip 0  '水平翻转
End Sub

运行过程,生成图片并进行几何变换。

【Python】

在Python Shell窗口输入:

code.python
>>> shp=sht.api.Shapes.AddPicture(r"D:\picpy.jpg", True, True, 100, 50, 100, 100)
>>> shp.IncrementRotation(30)  #绕中心顺时针方向旋转30度
>>> shp.Flip(0)  #水平翻转

旋转变换和对称变换后的图片如图5-24和图5-25所示。注意,对称变换是在前面旋转变换结果的基础上进行的,而不是针对原始图片。[大谦Excel,dqexcel点com]

Document Image Document Image

图5-24 对图片作旋转变换 图5-25 对图片作对称变换