
Hast (Normal User)
Rookie
    
Messaggi: 52
Iscritto: 09/04/2009
|
Salve a tutti vi chiedo un consiglio perchè io non so proprio come fare
Avevo intenzione di creare un programma in cui si ha un'immagine iniziale con (per esempio) un quadrato vuoto al centro. Poi si apre un'immagine che va a riempire il quadrato vuoto, infine con un bottone do il comando di unire le due immagini in una sola e di salvarla.
Il fatto è che non so come fare. Ho provato con le picturebox, ma poi non riesco a unire le diverse immagini.
Grazie per l'aiuto
|
|

Nottambulo (Normal User)
Newbie
    
Messaggi: 4
Iscritto: 14/05/2009
|
Unirle come?
|
|

Hast (Normal User)
Rookie
    
Messaggi: 52
Iscritto: 09/04/2009
|
Nel senso che ci sono due immagini sovrapposte e quando si salva le immagini diventano una sola.
|
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
Se per "sovrapposte" intendi un'interpolazione al 50% tra le due, pixel per pixel, allora prova questo codice:
Codice sorgente - presumibilmente VB.NET |
Dim b As New Bitmap(img1.Width, img1.Height) Dim g As Graphics = Graphics.FromImage(b) Dim M As New Imaging.ColorMatrix Dim A As New Imaging.ImageAttributes Dim R As New Rectangle(0, 0, img1.Width, img1.Height) M.Matrix00 = 1 M.Matrix11 = 1 M.Matrix22 = 1 M.Matrix33 = 0.5 M.Matrix44 = 1 A.SetColorMatrix(M) g.DrawImage(img1, R, 0, 0, img1.Width, img1.Height, GraphicsUnit.Pixel, A) g.DrawImage(img2, R, 0, 0, img2.Width, img2.Height, GraphicsUnit.Pixel, A) b.Save("C:\ciao.png")
|
img1 e img2 sono le immagini da sovrapporre. Non devono necessariamente avere le stesse dimensioni.
|
|

Hast (Normal User)
Rookie
    
Messaggi: 52
Iscritto: 09/04/2009
|
Ho provato a usare il tuo codice, ma mi da questo errore:
"Risoluzione dell'overload non riuscita perchè nessun 'New' accessibile può essere chiamato senza una conversione verso un tipo di dati più piccolo:"
e poi da tutti gli esempi
|
|

ruggy94 (Member)
Guru
    
Messaggi: 890
Iscritto: 21/04/2008
|
Postato originariamente da Hast:
Ho provato a usare il tuo codice, ma mi da questo errore:
"Risoluzione dell'overload non riuscita perchè nessun 'New' accessibile può essere chiamato senza una conversione verso un tipo di dati più piccolo:"
e poi da tutti gli esempi |
Ma che riga ti evidenzia? |
|

Hast (Normal User)
Rookie
    
Messaggi: 52
Iscritto: 09/04/2009
|
Postato originariamente da ruggy94:
Postato originariamente da Hast:
Ho provato a usare il tuo codice, ma mi da questo errore:
"Risoluzione dell'overload non riuscita perchè nessun 'New' accessibile può essere chiamato senza una conversione verso un tipo di dati più piccolo:"
e poi da tutti gli esempi |
Ma che riga ti evidenzia? |
Non mi evidenzia niente. Non mi fa proprio partire il debug. dice sono che è il comando new di
Codice sorgente - presumibilmente C# / VB.NET |
è questo New che mi da errore. |
|

ruggy94 (Member)
Guru
    
Messaggi: 890
Iscritto: 21/04/2008
|
ma nel tuo codice img1 e img2 sono oggetti di che tipo? (Bitmap, PictureBox, etc.)
|
|

Il Totem (Admin)
Guru^2
    
Messaggi: 3635
Iscritto: 24/01/2006
|
Sono bitmap. Se esegui operazioni matematiche sui parametri di new, ricordati di convertirli esplicitamente in integer, poiché altrimenti non riesce ad individuare l'overload corretto.
|
|