Поворот выбранных изображений в папке с использованием 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
Код выдает ошибку переполнения в команде оболочки. Как я могу выборочно поворачивать нужные изображения с помощью ImageMagick с использованием VBA? Использование командного файла будет вращать все изображения в папке?
1 ответ
Решение
COM+ объект сделал свое дело.
Dim img As Object
Set img = CreateObject("ImageMagickObject.MagickImage.1")
В петле:
imageRotator = img.Convert(imagePath, "-rotate", "270", rotatePath)