上期介绍了MATLAB调用Word的基本操作,这期主要介绍如何使用MATLAB将图片插入到Word中,并进行相关的设置
现有的很多教程介绍的都是通过复制粘贴将图片插入Word中的,这种方法比较难实现对图片的控制,比如缩放大小等。在这用的是InlineShaps对象进行图像操作,基本语法如下
ActiveDoc.InlineShapes.AddPicture( _FileName_ , _LinkToFile_ , _SaveWithDocument_ , _Range_ )
官网提供的说明如下
图1 InlineShape.AddPicture方法文档
一般来说,我们只需要给出FileName的参数即可,别可以用默认参数。执行后,该方法会自动将图片插到光标位置,并返回该图像的句柄,我们可以通过下面的语句完成图像插入的操作
Selection.Start = Content.end;
Selection.TypeParagraph;
Paragraphformat.Alignment = 'wdAlignParagraphCenter';
Filename = [pwd '\matlab.jpg']; %文件路径+文件名
Fig = ActiveDoc.InlineShapes.AddPicture(Filename); %插入图片
执行的效果如下
图2 插入了过大的图片
这样一来图片就成功插进Word文档了,但这里显然有个问题,就是图片过大,页面放不下了。因此我们需要对图片尺寸进行调整,这时候上面提到的句柄就能发挥作用了(图片操作可见官方文档中的InlineShape对象属性)
这里给出了两种缩放的方法,一种是比例缩放,一种是按大小进行缩放
%缩放指定的嵌入式图形相对于原始大小的比例
Fig.ScaleHeight = 40; %高度缩放比例
Fig.ScaleWidth = 40; %宽度缩放比例
%设置指定内联形状的尺寸
Fig.Width = 14.65 * 28.35; %缩放后宽度(磅)
Fig.Height = 6 * 28.35; %缩放后高度(磅)
这里采取了第二种方法,运行后图形已经成为了我们想要的尺寸
图3 缩放后的图形
当然,仅仅调整图片的的大小肯定还是不够的,有时也会涉及到图形的裁剪,可以用下面的方式实现(下面命令默认从右侧和下侧开始裁剪)
Fig.PictureFormat.Crop.ShapeHeight = 100; %将裁剪高度设置为 100 磅
Fig.PictureFormat.Crop.ShapeWidth = 100; %将裁剪高度设置为 100 磅
也可以用下列命令指定裁剪方向
Fig.PictureFormat.CropLeft = 100; %设置从指定图片或 OLE 对象的左侧裁剪下的磅值
Fig.PictureFormat.CropRight = 100; %右侧
Fig.PictureFormat.CropTop = 100; %顶部
Fig.PictureFormat.CropBottom = 100; %底部
裁剪的效果如下
图4 裁剪后的图形
图形的颜色类型、对比度、亮度可以这样设置
Fig.PictureFormat.ColorType = 'msoPictureGrayscale'; %图形设置为灰度显示
Fig.PictureFormat.Contrast = 0.8; %设置对比度
Fig.PictureFormat.Brightness = 0.3; %设置亮度
可以发现,对于图形的操作都在PictureFormat对象中,上面给出的只是其功能的很小一部分,详细的功能可以在官方文档的PictueFormat对象中找到
本期主要介绍了如何用MATLAB操作Word中的图片,主要包括图片的插入方法,尺寸调整以及图片对比度等参数的设置方法 ,下一期将着重讲解表格的操作