Modifica della risoluzione di un’immagine

' Il seguente snippet può essere utilizzato nell'EventoEsegui di un oggetto Procedura specificato come oggetto di ritorno del metodo UploadFile() per abbassare la risoluzione di un'immagine caricata
try                         
                dim tmpBase64String as string = ImageToBase64(Parameter1)
                Dim Base64String As String, NEW_Base64String As String
                
                if dbdollar("data:image", tmpBase64String) or dbdollar(";base64,", tmpBase64String)
                               Base64String = Substr(tmpBase64String, 23, Len(tmpBase64String))
                else
                               Base64String = tmpBase64String
                end if
                
                Dim ConvertBase64ToByteArray As Byte()
                Dim ms As System.IO.MemoryStream
                Dim image As System.Drawing.Image
                
                ConvertBase64ToByteArray = Convert.FromBase64String(Base64String)
                ms = New System.IO.MemoryStream(ConvertBase64ToByteArray)
                image = System.Drawing.Image.FromStream(ms)
                
                Dim width As Integer = image.Width ' Vengono mantenute le dimensioni dell'immagine caricata
                Dim height As Integer = image.Height
                
                Dim bm As Drawing.Bitmap = New System.Drawing.Bitmap(width, height)
                Dim g As System.Drawing.Graphics = Drawing.Graphics.FromImage(bm)
                
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Low ' Qui viene specificato di abbassare la risoluione
                g.DrawImage(image, 0, 0, width, height)
                Dim imgOutput As System.Drawing.Image = bm
                
                Dim m As System.IO.MemoryStream = New System.IO.MemoryStream()
                imgOutput.Save(m, image.RawFormat)
                Dim imageBytes As Byte() = m.ToArray()
                NEW_Base64String = Convert.ToBase64String(imageBytes)
                
                dim n as integer = form.findcontrol("FOTO").Count() + 1
                
                ' La foto viene ricaricata su una griglia, ma può essere gestita anche diversamente
                form.findcontrol("FOTO").AddRow()
                form.findcontrol("FOTO").AssignField("NUMBER1", n)
                form.findcontrol("FOTO").AssignField("CUSTOM15", NEW_Base64String)
                form.findcontrol("FOTO").SaveRow()
catch e as system.exception
                WriteLog("Errore nell'elaborazione dell'immagine: " + vbnewline + "xxx ERRORE xxx " + vbnewline + "Errore: " + vbnewline + e.Message + vbNewLine + "--- Stack --- " + vbNewLine + e.StackTrace)
                form.Alert("Si è verificato un ERRORE imprevisto!" + vbnewline + "Contattare l'Assistenza Tecnica QualiWare." + vbnewline + "Il Dettaglio dell'Errore si trova nel File di Log.")
end try