使用VBA和ImageMagick在文件夹中旋转选定的图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用VBA和ImageMagick在文件夹中旋转选定的图像相关的知识,希望对你有一定的参考价值。

我想检查一个文件夹,如果我的图像的旋转版本存在,如果不存在我想使用ImageMagick自动为我做(或另一个程序,如果它是一个更好的选择)。这是我的代码:

Dim imageDomain As String
Dim imagePath As String
Dim rotatePath As String
Dim rotateBool As Boolean
Dim imageRotator As Integer
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT Afbeelding FROM Products")

imageDomain = CurrentProject.Path & "folder"

If Not (rs.EOF And rs.BOF) Then
    rs.MoveFirst
    Do Until rs.EOF = True

        If Not IsNull(rs!Afbeelding) Then
            rotatePath = imageDomain & "rotate" & rs!Afbeelding
            rotateBool = Len(Dir(rotatePath))

            If Not rotateBool Then
                imagePath = imageDomain & rs!Afbeelding
                imageRotator = Shell("cmd.exe /c convert.exe -rotate ""270"" " & imagePath & " " & rotatePath)
            End If
        End If

        rs.MoveNext
    Loop
Else
    MsgBox "There are no records in the recordset."
End If

rs.Close
Set rs = Nothing

代码在shell命令中给出溢出错误。如何使用VBA选择性地旋转ImageMagick所需的图像?使用批处理文件会旋转文件夹中的所有图像?

答案

COM +对象完成了这个伎俩。

Dim img As Object
Set img = CreateObject("ImageMagickObject.MagickImage.1")

在循环:

imageRotator = img.Convert(imagePath, "-rotate", "270", rotatePath)

以上是关于使用VBA和ImageMagick在文件夹中旋转选定的图像的主要内容,如果未能解决你的问题,请参考以下文章

通过 ImageMagick 或 GhostScript 命令行旋转 .EPS 文件

ImageMagick 和 PHP 正确旋转图像

如何使用 imagemagick 将透明 png 旋转 45 度并保持新图像透明?

Imagemagick 旋转透明图像上不需要的黑色背景

imagemagick 旋转图像10°时超出的部分填充为黑色要修改成白色该怎样

ImageMagick实现图片的旋转/翻转/裁剪(ImageMagick6.9.10)