Problema nel ridimensionamento di un'immagine

domenica 26 febbraio 2006 - 16.14

papini.sascha Profilo | Newbie

Ciao Ragazzi ho un piccolo problema in una mia funzione ... in poche parole sto sviluppando un programma che data una immagine do inizio crea due nuove immagini di dimensioni che decide l'utente e applica un watermarks sopra l'immagine ... comodo per chi ha dei siti e vuole metterci sopra un logo ...
posto qui sotto il codice

Private Function ridimensionaImmagine(ByRef offsetIMG As Double) As PictureBox
Dim img As New PictureBox

If pbImmagineOriginale.Image.Width > offsetIMG Or pbImmagineOriginale.Image.Height > offsetIMG Then
x = offsetIMG
y = (offsetIMG * pbImmagineOriginale.Image.Height) / pbImmagineOriginale.Image.Width
If y > offsetIMG Then
x = (offsetIMG * x) / y
y = offsetIMG
End If
img.Image = pbImmagineOriginale.Image.GetThumbnailImage(x, y, Nothing, Nothing)
Else
img.Image = pbImmagineOriginale.Image
End If


Dim gr As Graphics
Dim pb As New PictureBox

With pb
.Width = offsetIMG
.Height = offsetIMG
pb.Image = New Bitmap(.Width, .Height)
End With

x = img.Image.Width
y = img.Image.Height

If x < offsetIMG Then
x = (offsetIMG - x) / 2
Else
x = 0
End If

If y < offsetIMG Then
y = (offsetIMG - y) / 2
Else
y = 0
End If

Try
gr = Graphics.FromImage(pb.Image)
gr.PageUnit = GraphicsUnit.Pixel

gr.Clear(lbSfondo.BackColor)
gr.DrawImage(img.Image, New Point(x, y))
'gr.DrawString(tbTesto.Text.TrimEnd, New Font("Arial", FontStyle.Regular), Brushes.Black, 0, 3)
Return pb
Catch ex As Exception
MsgBox(ex.ToString, MsgBoxStyle.Critical, "Errore")
End Try

End Function

il problema sta nel ridisegno dell'imagine ...
mettiamo che ho un immagine di 220x97 e la volgio ridimensionare su una bitmap di 50x50
prima ridemensiono l'immagine (primo if ... endif) poi la voglio ridisegnare su una nuova picturebox in modo che se la x o la y della nuova immagine sono inferiore al ridimensionamento (che in questo caso è 50x50) me la ridisegna nel centro ...
l'immagine viene ridimensionata correttamente ma quando me la disegna nella nuova picturebox pb mi sballa tutto ... mica mi sapete dire il perchè ??

ciao e grazie

Nel dubbio GASSE !!!

Brainkiller Profilo | Guru

>ridisegnare su una nuova picturebox in modo che se la x o la
>y della nuova immagine sono inferiore al ridimensionamento (che
>in questo caso è 50x50) me la ridisegna nel centro ...
>l'immagine viene ridimensionata correttamente ma quando me la
>disegna nella nuova picturebox pb mi sballa tutto ... mica mi
>sapete dire il perchè ??

Evidentemente il problema sta nelle coordinate x,y dove disegni l'immagine ridimensionata.
Prova a forzare coordinate 0,0 e vedrai che viene disegnata in alto a sinistra.
E questo che vuoi no ?
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5