Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Problema nel ridimensionamento di un'immagine
domenica 26 febbraio 2006 - 16.14
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
papini.sascha
Profilo
| Newbie
19
messaggi | Data Invio:
dom 26 feb 2006 - 16:14
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
7.999
messaggi | Data Invio:
mer 1 mar 2006 - 21:16
>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/
Torna su
Stanze Forum
Elenco Threads
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 !