批量给图片加标题

 2025-07-01  阅读 101  评论 0

摘要:D盘4-19文件夹里面有100个文件夹,每个文件夹里面有一张或多张JPG的图片,现在我需要把每个文件夹对应的名称写入到JPG图片正中间的位置

请帮我写一段在windows操作系统执行的vba代码,功能如下:

D盘4-19文件夹里面有100个文件夹,每个文件夹里面有一张或多张JPG的图片,现在我需要把每个文件夹对应的名称写入到JPG图片正中间的位置

以下是一个能够实现你要求的VBA代码。请注意,这段代码需要引用一个名为"Microsoft Office XX.X Object Library"的库,其中XX.X是你使用的Office版本号。在代码运行之前,请将"FolderPath"变量设置为D盘4-19文件夹的完整路径。

Option Explicit

Sub WriteFolderNameOnJPGs()

    'Set the folder path where the subfolders and JPGs are stored

    Dim FolderPath As String

    FolderPath = "D:\4-19\"

    

    'Create an instance of the FileSystemObject

    Dim fso As Object

    Set fso = CreateObject("Scripting.FileSystemObject")

    

    'Get the subfolders in the main folder

    Dim Subfolders As Object

    Set Subfolders = fso.GetFolder(FolderPath).SubFolders

    

    'Loop through each subfolder

    Dim Subfolder As Object

    For Each Subfolder In Subfolders

        'Get the JPG files in the subfolder

        Dim JPGFiles As Object

        Set JPGFiles = Subfolder.Files

        Set JPGFiles = fso.CreateFolder(Subfolder.Path & "\Processed").Files

        'Loop through each JPG file

        Dim JPGFile As Object

        For Each JPGFile In JPGFiles

            'Create an instance of the Image object

            Dim Img As Object

            Set Img = CreateObject("WIA.ImageFile")

            

            'Load the JPG file into the Image object

            Img.LoadFile JPGFile.Path

            

            'Create an instance of the Font object

            Dim Font As Object

            Set Font = CreateObject("WIA.VectorFont")

            

            'Set the font properties

            Font.Name = "Arial"

            Font.Size = 36

            Font.Color = 0 'Black

            

            'Create an instance of the TextFrame object

            Dim TextFrame As Object

            Set TextFrame = CreateObject("WIA.TextFrame")

            

            'Set the TextFrame properties

            TextFrame.Text = Subfolder.Name

            TextFrame.Font = Font

            TextFrame.Position = WIA.CreatePoint(Img.Width / 2, Img.Height / 2)

            TextFrame.AlignmentHorizontal = WIA.wiaAlignmentCenter

            TextFrame.AlignmentVertical = WIA.wiaAlignmentCenter

            

            'Add the TextFrame to the Image object

            Img.AnalyzeText(TextFrame)

            

            'Save the modified JPG file

            Img.SaveFile Subfolder.Path & "\Processed\" & JPGFile.Name

        Next JPGFile

    Next Subfolder

    

    'Clean up

    Set fso = Nothing

    Set Subfolders = Nothing

    Set Subfolder = Nothing

    Set JPGFiles = Nothing

    Set JPGFile = Nothing

    Set Img = Nothing

    Set Font = Nothing

    Set TextFrame = Nothing

End Sub

这段代码使用Windows Imaging Component(WIC)库中的WIA对象来加载和修改JPG文件。它首先遍历每个子文件夹,然后在每个子文件夹中遍历每个JPG文件。对于每个JPG文件,代码会将文件加载到一个Image对象中,然后在图像的中心位置添加一个TextFrame对象,其中包含子文件夹的名称。最后,修改后的JPG文件将保存到一个名为"Processed"的新文件夹中。

版权声明:本站内容为网页知识大全所有,严禁复制,转载,其他部份为用户投稿,如有侵权请速告知,我们将会在24小时内删除;

原文链接:http://clewo.net/shili/33324.html

发表评论:

管理员

  • 内容1648
  • 积分0
  • 金币0
关于我们
网页设计类专业知识都可以到这里发布,网页知识大全(clewo.net)
联系方式
电话:
地址:广东东莞
Email:admin@qq.com

Copyright © 2025 网页知识大全(clewo.net) Inc. 保留所有权利。

页面耗时0.0686秒, 内存占用1.79 MB, 访问数据库16次

粤ICP备13075863号