对于内嵌图像比较多的文件,当这些文件具有相似的图像灰度分布时,往往需要给他们设置同样的亮度、对比度和清晰度属性,让它们具有比较理想的感观效果。以下就是可以自动设置图像上述属性的vba代码。
'On Error Resume Next '忽略错误
Dim myInline As InlineShape
Application.ScreenUpdating = False
For n = 1 To ActiveDocument.InlineShapes.Count
Set myInline = ActiveDocument.InlineShapes(n)
'myInline.PictureFormat.IncrementBrightness (0.2)
'myInline.PictureFormat.IncrementContrast (0.4)
Set myrange = myInline.ConvertToShape '先换成浮动图形
myrange.ScaleHeight 0.7, True, msoScaleFromMiddle '设置图片的尺寸
myrange .ScaleWidth 0.7, True, msoScaleFromMiddle
With myrange.Fill.PictureEffects '浮动图形才可应用填充图形效果,嵌入图形不可应用图形效果
Set sha = .Insert(msoEffectSharpenSoften) '给图形应用锐化效果
sha.EffectParameters(1).Value = 0.7 '锐化+70%
Set brightnessContrast = .Insert(msoEffectBrightnessContrast) '给图形应用亮度和对比度效果
'brightnessContrast.EffectParameters(1).Value = 0.2 '亮度+20%
brightnessContrast.EffectParameters(2).Value = 0.5 '对比度+50%
End With
myrange.ConvertToInlineShape '再换成嵌入图形
Next n
Application.ScreenUpdating = True