Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: El Berto - 05 Gennaio 2012, 17:35:09

Titolo: [Risolto] Selezionare area di un'immagine, e spostarla?
Inserito da: El Berto - 05 Gennaio 2012, 17:35:09
Ho realizzato una funzione in VB che carica un'immagine (.jpg), effettua la selezione di un'area, sposta l'area.

Per semplicità, se ho un immagine con scritto "Michele", devo selezionare la "e" e spostarla in modo da ottenere la scritta "Mieh le".


Allora, giusto per provare, ho questo codice:

Codice: [Seleziona]
ter = (user.home & "/images.jpeg")
hImage = Picture.Load(ter) ' icona batteria

selection = hImage.Copy(0, 20, 16, 150)
selection.Save(user.home & "/selection.jpeg")

e già qui riesco a salvare la selezione; ma con quale comando posso "inserire" la selezione nell'immagine sorgente?
In pratica devo inserire "selection" in una posizione x,y all'interno di hImage.....


Titolo: Re: Selezionare area di un'immagine, e spostarla?
Inserito da: fsurfing - 06 Gennaio 2012, 14:14:30
tramite le funzioni di disegno ovvero
draw.begin(picture base)
 draw.picture(pic_porzione,x,y)
draw.end

Titolo: Re: Selezionare area di un'immagine, e spostarla?
Inserito da: El Berto - 27 Gennaio 2012, 14:56:47
Codice: [Seleziona]
DIM hImage AS picture
DIM Selezione AS Picture
hImage = NEW picture
Selezione = NEW Picture
 
 
hImage = Picture.Load(PercorsoDestinazione) ' apro immagine sorgente
Draw.Begin(hImage)
Selezione = hImage.Copy(37, 79, 863, 460) ' seleziono la porzione da spostare
Draw.Picture(Selezione, 35, 79) ' sposto la sezione (in pratica incollo la selezione sull'immagine originaria)
hImage.Save(PercorsoDestinazione)
Draw.End

Ho risolto in questo modo.

Mi sorge un dubbio: visto che utilizzo HImage=Picture.Load(PercorsoDestinazione), poi Draw.Begin(hImage) e per tirare delle linee utilizzo Draw.Line(.......), suppongo io non possa aprire 2 immagini contemporaneamente e disegnarci sopra le stesse linee, in quanto entrambi i comandi utilizzano Draw.Line, ma come posso dire su quale immagine scrivere le righe?
Titolo: Re: Selezionare area di un'immagine, e spostarla?
Inserito da: vuott - 27 Gennaio 2012, 16:27:01
Mi sorge un dubbio: visto che utilizzo HImage=Picture.Load(PercorsoDestinazione), poi Draw.Begin(hImage) e per tirare delle linee utilizzo Draw.Line(.......), suppongo io non possa aprire 2 immagini contemporaneamente e disegnarci sopra le stesse linee, in quanto entrambi i comandi utilizzano Draw.Line, ma come posso dire su quale immagine scrivere le righe?

Scusa, forse non ho compreso bene, ma... non puoi caricare le due immagini separatamente (in due variabili distinte) ed operare quindi su ciascuna, una immediatamente dopo l'altra ?
Titolo: Re: [Risolto] Selezionare area di un'immagine, e spostarla?
Inserito da: El Berto - 27 Gennaio 2012, 16:42:01
E' che i dati cono contenuti in un file (dati relativi a 3 grafici), quindi supponevo di aprire uno stesso file, leggere i dati e scrivere il grafico contemporaneamente (pixel per pixel) senza dover ripassare tutti e 3 i grafici e caricare nuovamente tutti i 400 files......