Autore Topic: [Risolto] Selezionare area di un'immagine, e spostarla?  (Letto 738 volte)

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
[Risolto] Selezionare area di un'immagine, e spostarla?
« il: 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.....


« Ultima modifica: 27 Gennaio 2012, 14:57:27 da El Berto »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Selezionare area di un'immagine, e spostarla?
« Risposta #1 il: 06 Gennaio 2012, 14:14:30 »
tramite le funzioni di disegno ovvero
draw.begin(picture base)
 draw.picture(pic_porzione,x,y)
draw.end


Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: Selezionare area di un'immagine, e spostarla?
« Risposta #2 il: 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?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.719
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Selezionare area di un'immagine, e spostarla?
« Risposta #3 il: 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 ?
« Ultima modifica: 27 Gennaio 2012, 16:29:05 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: [Risolto] Selezionare area di un'immagine, e spostarla?
« Risposta #4 il: 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......