VBScript и imagemagick ошибка изменения размера
Я пытаюсь размер каждой подпапки первого JPG и поместить его в новую папку
Dim strFolderPath,objFSO
strDirectory= "D:images"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFolder, objSubFolder,folderCur
Set objFolder = objFSO.GetFolder(strDirectory)
Dim imageMagick
Set imageMagick = CreateObject("ImageMagickObject.MagickImage.1")
If objFolder.SubFolders.Count > 0 Then
For Each objSubFolder in objFolder.SubFolders
'Now check if the folder contains any files.
If objSubFolder.Files.Count > 0 Then
folderCur = objSubFolder & "_small320"
For each JpgFile in objSubFolder.Files
WScript.Echo "Checking Folder: " & folderCur & "" & JpgFile.name & vbcrlf & " File: " & JpgFile
if not objFSO.folderexists(folderCur) then objFSO.createfolder folderCur
'imageMagick.Exec("convert " & JpgFile & " -resize 320x210 " & JpgFile.name)
imageMagick.Convert JpgFile, "-resize", "320x210", folderCur & "preview.jpg"
exit for
next
End If
Next
End If
Но я получаю ошибку на imageMagick.Convert JpgFile, "-resize", "320x210", folderCur & "preview.jpg"

Что плохого в синтаксисе?
Также получаем эту ошибку

Но все библиотеки DLL существуют в папке
1 ответ:
Не проверено (нет ImageMagick под рукой), но, вероятно,
imageMagick.Convert JpgFile.Path, "-resize", "320x210", folderCur & "preview.jpg"Включил полный путь к файлу и удалил дополнительную обратную косую черту в выходном файле (которая была включена в имя папки).
Отредактировано Теперь проверено и работает. Этот код обрабатывает вложенные папки папки, в которой находится скрипт.
Option Explicit Const OUTPUT_FOLDER_NAME = "_small320" Dim fso Set fso = WScript.CreateObject("Scripting.FileSystemObject") Dim strScriptFolder strScriptFolder = fso.GetFile( WScript.ScriptFullName ).ParentFolder.Path Dim rootFolder Set rootFolder = fso.GetFolder( strScriptFolder ) Dim imageMagick Set imageMagick = WScript.CreateObject("ImageMagickObject.MagickImage.1") Dim inputFolder, inputFile, strOutputFolder For Each inputFolder In rootFolder.SubFolders If inputFolder.Name <> OUTPUT_FOLDER_NAME Then strOutputFolder = fso.BuildPath(inputFolder.Path, OUTPUT_FOLDER_NAME) If Not fso.FolderExists(strOutputFolder) Then fso.CreateFolder strOutputFolder End If For Each inputFile In inputFolder.Files Select Case LCase(fso.GetExtensionName(inputFile.Path)) Case "jpg", "jpeg", "png" WScript.Echo "[ convert ] " & inputFile.Path imageMagick.Convert inputFile.Path, _ "-resize", _ "320x210", _ fso.BuildPath(strOutputFolder, inputFile.Name) Case Else WScript.Echo "[ skip ] " & inputFile.Path End Select Next End If NextИсходная ошибка, о которой идет речь (
Unsupported argument type), была сгенерирована, когда в качестве аргумента был передан объектFile, а не строка с путем к файлу.В
Unable to load module- это ошибкаImageMagick, а не ошибка программирования. Возможно, переменнаяpathневерна и модули не могут быть найдены или это ошибка установки. Предыдущий код был протестирован (и работает) с новой установкойImageMagick-6.9.1-6-Q16-x64-dll.exe.
Comments