Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Aggiungere un bordo ad un'immagine.
Forum - C# / VB.NET - [VB.NET] Aggiungere un bordo ad un'immagine.

Avatar
MrPaky (Member)
Pro


Messaggi: 124
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 23:53
Mercoledì, 07/12/2011
Ciao a tutti,

vorrei aggiungere un bordo ad un'immagine, però il bordo è un'immagine PNG, che è in poche parole un bordo disegnato, e al centro ha una trasparenza.

Come posso fare?

Per aggiungere un bordo colorato ho già fatto così:
Codice sorgente - presumibilmente VB.NET

  1. Public Function AggiungoBordo(percorso_immagine As Image, borderWidth As Integer) As Image
  2.         Dim borderColor = Color.White
  3.  
  4.         Dim newSize = New Size(percorso_immagine.Width + borderWidth * 2, percorso_immagine.Height + borderWidth * 2)
  5.  
  6.         Dim immagine = New Bitmap(newSize.Width, newSize.Height)
  7.         Dim Disegno_Board = Graphics.FromImage(immagine)
  8.  
  9.         Disegno_Board.Clear(borderColor)
  10.         Disegno_Board.DrawImage(original, New Point(borderWidth, borderWidth))
  11.         Disegno_Board.Dispose()
  12.  
  13.         Return immagine
  14.     End Function
  15.  
  16. Private Sub Button_Click(sender As System.Object, e As System.EventArgs) Handles Button.Click
  17.  
  18. PictureBox1.Image = AggiungoBordo("Nome_File.jpg", 240)
  19.  
  20. End Sub



E questo funziona. Ma se il bordo è un'immagine, cosa potrei fare?

Grazie a tutti

Ciaooooooo :)


zappiapaki@hotmail.it
PM Quote
Avatar
walker93 (Member)
Expert


Messaggi: 460
Iscritto: 31/01/2010

Segnala al moderatore
Postato alle 12:24
Giovedì, 08/12/2011
Dovrai passare 2 immagini alla funzione

una con l'originale e una con il bordo

e poi al posto del tuo DrawImage() metti:

Codice sorgente - presumibilmente Plain Text

  1. Disegno_Board.DrawImage(immagine_bordo, 0, 0)
  2. Disegno_Board.DrawImage(Immagine_originale, width_cornice, height_cornice)


Ultima modifica effettuata da walker93 il 08/12/2011 alle 12:25


Il software è come il sesso, è meglio quando è libero.
Linus Torvalds, Conferenza della Free Software Foundation, 1996 (attribuito)

Non provare mai a spiegare il computer a un profano. È più facile spiegare il sesso a una vergine.
Robert Anson Heinle
PM Quote
Avatar
MrPaky (Member)
Pro


Messaggi: 124
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 5:53
Venerdì, 09/12/2011
Testo quotato

Postato originariamente da walker93:

Dovrai passare 2 immagini alla funzione

una con l'originale e una con il bordo

e poi al posto del tuo DrawImage() metti:

Codice sorgente - presumibilmente Plain Text

  1. Disegno_Board.DrawImage(immagine_bordo, 0, 0)
  2. Disegno_Board.DrawImage(Immagine_originale, width_cornice, height_cornice)




Buongiorno,

Grazie per la risposta, ma non potresti cortesemente fare un esempio completo? Per favore, sono un po' confuso! 

Ti ringrazio ugualmente :)


zappiapaki@hotmail.it
PM Quote
Avatar
walker93 (Member)
Expert


Messaggi: 460
Iscritto: 31/01/2010

Segnala al moderatore
Postato alle 16:06
Venerdì, 09/12/2011
Postare un codice completo va contro al regolamento...
cercerò di essere più chiaro:

Tu adesso con la tua funzione, ti calcoli le nuove dimensioni dell'immagine con il bordo, poi con la funzione clear colori tutta l'immagine di bianco (cancellando eventuali vecchie immagini) e ne disegni una nuova immagine corrispondente all'originale spostata di un certo numero(corrispondente alla larghezza del bordo) passato alla funzione.

quello che dico di fare io è passare alla funzione 3 parametri: l'immagine originale, l'immagine della cornice e la dimensione della cornice (non il width, ma solo il bordo)

poi dopo le stesse funzioni, al posto di disegnare solo l'immagine originale spostata disegni anche l'immagine della cornice che parte dal punto ( 0; 0) il risultato finale sarà l'immagine originale dentro la cornice...


Il software è come il sesso, è meglio quando è libero.
Linus Torvalds, Conferenza della Free Software Foundation, 1996 (attribuito)

Non provare mai a spiegare il computer a un profano. È più facile spiegare il sesso a una vergine.
Robert Anson Heinle
PM Quote
Avatar
MrPaky (Member)
Pro


Messaggi: 124
Iscritto: 19/10/2008

Segnala al moderatore
Postato alle 22:47
Venerdì, 09/12/2011
Testo quotato

Postato originariamente da walker93:

Postare un codice completo va contro al regolamento...
cercerò di essere più chiaro:

Tu adesso con la tua funzione, ti calcoli le nuove dimensioni dell'immagine con il bordo, poi con la funzione clear colori tutta l'immagine di bianco (cancellando eventuali vecchie immagini) e ne disegni una nuova immagine corrispondente all'originale spostata di un certo numero(corrispondente alla larghezza del bordo) passato alla funzione.

quello che dico di fare io è passare alla funzione 3 parametri: l'immagine originale, l'immagine della cornice e la dimensione della cornice (non il width, ma solo il bordo)

poi dopo le stesse funzioni, al posto di disegnare solo l'immagine originale spostata disegni anche l'immagine della cornice che parte dal punto ( 0; 0) il risultato finale sarà l'immagine originale dentro la cornice...



:D Grazie, avevo letto il regolamento comunque, mi ero alzato alle 5 di mattina :D poi avevo risolto, ti ringrazio moltissimo :)


zappiapaki@hotmail.it
PM Quote