This script creates thumbnails for all cover images in the selected folder and subfolders. This speeds up the listings in Squeezebox. It uses Graphicsmagick for the actual converting.
I made this script because there was no easy way to do this in windows as there is no good find command like in *nix.
Save the script below as thumber.vbs and run from the command line:
cscript thumber.vbs "foldername"
Example:
cscript thumber.vbs "c:\My Music"
Dim fso, folder, folderName, coverFilenames, convertCommand, targetFilename
' Change this if you use other filenames
coverFilenames = "FOLDER.JPG,COVER.JPG"
' Change this if you want to use another target filename
targetFilename = "thumb.jpg"
' Change this if you want to use different parameters for converting the image
convertCommand = "gm convert -resize 50x50 ""#SOURCEFILENAME#"" ""#TARGETFILENAME#"""
If Wscript.Arguments.Count <> 1 Then
WScript.Echo "Run from the command line: cscript thumber.vbs ""foldername"""
Wscript.Quit
End If
folderName = Wscript.Arguments(0)
Set fso = CreateObject("Scripting.FileSystemObject")
Set oShell = WScript.CreateObject ("WScript.Shell")
If Not fso.FolderExists(folderName) Then
WScript.Echo "The folder """ & folderName & """ does not exist"
Wscript.Quit
End If
WScript.Echo "Scanning """ & folderName & """"
Set folder = fso.GetFolder(folderName)
processFolders(folder)
Function processFolders(folder)
Dim subfolder
processFiles(folder)
For Each subfolder in folder.SubFolders
processFolders(subfolder)
Next
Set subfolder = Nothing
End Function
Function processFiles(folder)
Dim file, fileNames, cmd
For Each file in folder.Files
If InStr(coverFilenames, UCase(file.name)) > 0 Then
cmd = convertCommand
cmd = Replace(cmd,"#SOURCEFILENAME#",file.Path)
cmd = Replace(cmd,"#TARGETFILENAME#",file.ParentFolder & "\" & targetFilename)
Set cmdOutput = oShell.Exec(cmd)
WScript.Echo cmdOutput.StdOut.ReadAll
End If
Next
Set file = Nothing
End Function