Word中使用VB宏可以批量设置图片的格式。

QQ截图20230701002318.png

批量调整图片大小

Sub 批量设置图片格式()
'
' 批量设置图片格式 宏
'
'
'定义变量
Dim picwidth
Dim picheight

On Error Resume Next '忽略错误

'按照固定大小缩放,保持比例
picheight = 10  '单位厘米,可修改
picwidth = 15  '单位厘米,可修改

''类型1:嵌入式图形 InlineShapes类型图片
For Each Shape In ActiveDocument.InlineShapes

'按照固定大小缩放, 两行删一行即可
'Shape.Height = picheight * 28.35 '设置图片高度为 10cm (1cm等于28.35px)
Shape.Width = picwidth * 28.35 '设置图片宽度8cm

Next

''类型2:非嵌入式图形,Shapes类型图片
For Each Shape In ActiveDocument.Shapes

'按照固定大小缩放, 两行删一行即可
'Shape.Height = picheight * 28.35 '设置图片高度为 10cm (1cm等于28.35px)
Shape.Width = picwidth * 28.35 '设置图片宽度8cm

Next

End Sub

批量设置图片的亮度和对比度

Sub 批量设置图片亮度对比度()

    ' 调节亮度和对比度 宏
    For i = 1 To ActiveDocument.InlineShapes.Count
        '0~1对应-100%~100%范围
        ActiveDocument.InlineShapes(i).PictureFormat.Brightness = 0.275  '将嵌入型图片的亮度设置为-45%
        ActiveDocument.InlineShapes(i).PictureFormat.Contrast = 0.825  '将嵌入型图片的对比度设置为65%
    Next i
    For i = 1 To ActiveDocument.Shapes.Count
       If ActiveDocument.Shapes(i).Type = msoPicture Then  '假设浮动型对象是图片时才处理
            ActiveDocument.Shapes(i).PictureFormat.Brightness = 0.275  '将浮动型图片的亮度设置为-40%
           ActiveDocument.Shapes(i).PictureFormat.Contrast = 0.825  '将浮动型图片的对比度设置为65%
 
       End If
    Next i
 MsgBox "处理完毕!"
End Sub

使用Python计算缩放量

def scale(x, srcRange, dstRange):
    return (x-srcRange[0])*(dstRange[1]-dstRange[0])/(srcRange[1]-srcRange[0])+dstRange[0]
print("请输入待缩放的值:")
print(scale(int(input()),(-100,100),(0,1)))

发表评论