' 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