Come convertire le immagini in vari formati dal menu contestuale di Windows grazie ad IrfanView

- Assicurarsi di aver installato nel proprio sistema IrfanView
- Aprire il Blocco Note di Windows
- Copiare quanto segue ed incollarlo nel Blocco Note:
- Salvare il file come I_CONV.VBS
- Chiudere il Blocco Note
- Aprire tramite doppio click il file appena creato
- Dare l’OK
‘ (c) 2006 plamdi.com, this file must not be sold, you may distribute it
‘ freely so long as it remains unmodified with all internal documentation.
‘
‘ This program is designed for use with IrfanView. It will add or remove
‘ shell extensions for converting between several popular image formats.
‘ If required you could add more to the list.
‘ In no way am I affiliated with IrfanView.
‘
‘ Installation:
‘ 1. Double click on i_conv.vbs to install/uninstall
‘ 2. Run “WScript.exe i_conv.vbs” from a command prompt or the run dialogue.
‘ 3. Run “WScript.exe i_conv.vbs /s” to achieve a silent installation.
‘
‘ Usage:
‘ Right click a picture with a supported format (by default BMP, PNG, GIF,
‘ JPG and ICO) and click “Convert to XXX” Where XXX is desired type.
‘
‘ Notes on installation:
‘ i_conv.vbs can be run from anywhere to install so long as IrfanView is
‘ installed. If IrfanView isn’t found the script will not install the
‘ extensions, but will uninstall if asked. If IrfanView was not installed
‘ correctly, or if it isn’t found automatically with installation simply
‘ copy this file to the IrfanView folder and run from there.
‘
‘ When this file is run it will automatically place a copy into your
‘ IrfanView folder (where possible), and you can delete any other installation
‘ point as it will not be needed.
‘
‘ You can uninstall the shell extensions through “Add or Remove Programs” in
‘ Control Panel. Uninstallation will not delete i_conv.vbs, delete the file
‘ manually if required.
‘
‘ If you prefer you can use /silent instead of /s. Silent installations
‘ suppress error messages if it cannot be installed.
‘
‘ Other Notes:
‘ This will also write a configuration file for use exclusively with the shell
‘ extensions. You can modify it at any time. It is put in a new folder named
‘ “i_conv”.
‘ ————————————————————————–‘ Define variables.
Option Explicit
On Error Resume Next
Dim WshShell,fso,a,f,i,j,o,p,t,u,v,w:w=0
Set WshShell=WScript.CreateObject(“WScript.Shell”)
Set fso=CreateObject(“Scripting.FileSystemObject”)
p=Left(WScript.ScriptFullName,Len(WScript.ScriptFullName)-Len(WScript.ScriptName))
If Wscript.Arguments.Count=1 Then
If Wscript.Arguments(0)=”REM” Then
‘ This is invoked from “Add or Remove Programs”.
v=MsgBox(“Are you sure you want to remove the image-conversion shell extensions?”,292,”Remove shell extensions confirmation”)
If v=7 Then WshShell=Nothing:Wscript.Quit(1)
w=7
ElseIf UCase(Wscript.Arguments(0))=”/S” Or UCase(Wscript.Arguments(0))=”/SILENT” Then
‘ If We are running a silent install preset variables.
w=6
Else
‘ We have invalid command parameters.
ErrHndlr()
End If‘ This is the part used for conversion, it’s extremely simple – it takes two
‘ variables, one is a file name, the other a file extensions – such as BMP and
‘ JPG, and tells IrfanView to convert file name to file format, after checking
‘ if destination file exists, and if necessary asking the user whether to
‘ overwrite or not.
ElseIf Wscript.Arguments.Count=2 Then
t=Wscript.Arguments(0):u=Wscript.Arguments(1)
For i=Len(t) To 2 Step -1
If Mid(t,i,1)=”.” Then Exit For
Next’i
If i=1 Then ErrHndlr()’ We have invalid command parameters.
v=Right(t,Len(t)-i)
If v=UCase(v)Then u=UCase(u)
u=Left(t,i)&u
If fso.fileexists(u) Then
v=MsgBox(“Destination file exists, ok to overwrite?”,292,”Overwrite confirmation”)
If v=7 Then WshShell=Nothing:Wscript.Quit(1)
End If
WshShell.Run(“”””&p&”i_view32.exe”” “””&t&””” /convert=”””&u& “”” /ini=”””&p&”i_conv”””),1
Set WshShell=Nothing
Wscript.Quit(1)
ElseIf Wscript.Arguments.Count0 Then
‘ We have invalid command parameters.
ErrHndlr()
End If‘ Everything after this is only run if you open the file directly. This means
‘ you either want to set up the shell extensions, or remove them. We check
‘ first for IrfanView, and if we can’t find it then installing the shell
‘ extensions will be disabled.
If fso.fileexists(p&”i_view32.exe”) Then
If UCase(WScript.ScriptFullName)UCase(p&”I_CONV.VBS”) Then
‘ If IrfanView is found in the folder this file is run from, and i_conv.vbs
‘ is incorrectly named, create a usable copy called i_conv.vbs.
‘ Otherwise we are sweet to go!
fso.CopyFile WScript.ScriptFullName,p&”i_conv.vbs”
End If
Else
‘ IrfanView wasn’t found in the folder that i_conv.vbs was run from, so let’s
‘ search for it.. best place to look first is in the registry, IrfanView
‘ doesn’t have it’s own key under HKLM\SOFTWARE, so we’ll see if it’s
‘ uninstall entry will point the way.
p=WshShell.RegRead(“HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\IrfanView\UninstallString”)
p=Left(p,Len(p)-16)
If fso.fileexists(p&”i_view32.exe”) Then
‘ If IrfanView is found then all we need do is put i_conv.vbs into its folder.
fso.CopyFile WScript.ScriptFullName,p&”i_conv.vbs”
ElseIf fso.fileexists(WshShell.Environment(“PROCESS”)(“ProgramFiles”)&”\irfanview\i_view32.exe”) Then
‘ We still haven’t found IrfanView… so the other place to look is in the
‘ computer’s Program Files folder. We won’t find it if the user has installed
‘ to a personalized location.
‘ As above we will need to put i_conv.vbs in the IrfanView folder.
p=WshShell.Environment(“PROCESS”)(“ProgramFiles”)&”\IrfanView\”
fso.CopyFile WScript.ScriptFullName,p&”i_conv.vbs”
Else
‘ IrfanView was not found. Ask if user wants to uninstall extensions and exit.
‘ Unless we’re meant to be doing a silent install, in which case we’ll just
‘ end without alerting the user.
If w=6 Then
WshShell=Nothing:Wscript.Quit(0)
ElseIf w7 Then
v=MsgBox(“IrfanView not found. Would you like to remove the shell extensions?”,292,”Remove shell extensions”)
If v=7 Then WshShell=Nothing:Wscript.Quit(1)
End If
End If
End If‘ OK we’re now ready to add or remove the shell extensions!
‘ Define the image formats we are going to use – I’ve included 5 as default,
‘ feel free to add more just remember to change the declaration of the “q”
‘ array to the correct size. It is important that if you want to do this to
‘ first remove the shell extensions before modifying the file.
Dim q(4):q(0)=”bmp”:q(1)=”gif”:q(2)=”ico”:q(3)=”jpg”:q(4)=”png”‘ Ask user for input, unless we already know to install/uninstall that is.
If w=0 Then w=MsgBox(“Do you want the image-conversion shell extensions?”,292,”Enable/Disable shell extensions”)‘ Write a custom .ini file for use with conversions, you may customize this
‘ but it’s probably easier to edit the .ini once it’s installed.
If w=6 Then
o=”[PNG]”&vbCrLf&”CompressionLevel=6″&vbCrLf&”[JPEG]”&vbCrLf&”Save Quality=85″&vbCrLf&”Save Progressive=0″&vbCrLf&_
“Save Grayscale=0″&vbCrLf&”KeepExif=0″&vbCrLf&”KeepCom=0″&vbCrLf&”KeepIptc=0″&vbCrLf&”[MultiGIF]”&vbCrLf&_
“SaveInterlaced=0″&vbCrLf&”SaveTransparent=0″&vbCrLf&”UsePalette=0″&vbCrLf&”Transparency=0″
fso.CreateFolder(p&”\i_conv”):fso.DeleteFile(p&”\i_conv\i_view32.ini”)
Set f=fso.CreateTextFile(p&”\i_conv\i_view32.ini”, True):f.Write o:f.Close
Else
‘ Or delete it if we’re uninstalling.
fso.DeleteFile(p&”\i_conv\i_view32.ini”)
fso.DeleteFolder(p&”\i_conv”)
End If
‘ Go through the registry and make the necessary changes…
For i=0 To UBound(q)
a=WshShell.RegRead(“HKCR\.”&q(i)&”\”)
If a“” Then
a=”HKCR\”&a&”\shell\”
For j=0 To UBound(q)
If ij Then
t=a&”Convert_to_”&UCase(q(j))&”\”
If w=6 Then
WshShell.RegWrite t,”Convert to “&UCase(q(j))
WshShell.RegWrite t&”command\”,”WScript.exe “””&p&”i_conv.vbs”” “”%d”” “&q(j)
Else
WshShell.RegDelete t&”command\”:WshShell.RegDelete t
End If
End If
Next’j
t=a&”Remove_Image_Conversion_Shell_Extensions\”
t=”HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\i_conv\”
If w=6 Then
WshShell.RegWrite t,””
WshShell.RegWrite t&”DisplayName”,”Image Conversion Shell Extensions (Removal)”
WshShell.RegWrite t&”UninstallString”,”WScript.exe “””&p&”i_conv.vbs”” REM”
WshShell.RegWrite t&”NoModify”,1,”REG_DWORD”
WshShell.RegWrite t&”NoRepair”,1,”REG_DWORD”
Else
WshShell.RegDelete t&”NoModify”:WshShell.RegDelete t&”NoRepair”
WshShell.RegDelete t&”UninstallString”:WshShell.RegDelete t&”DisplayName”:WshShell.RegDelete t
End If
End If
Next’i
Set WshShell=Nothing
Wscript.Quit(1)sub ErrHndlr()
MsgBox “Invalid parameters were given. The only correct user command line is /s or /silent.”,16,”i_conv.vbs error”
Set WshShell=Nothing
Wscript.Quit(0)
End Sub