Newsgroup: it.comp.lang.visual-basic
Titolo: Point e Pset e immagini invisibili

Volendo "sostituire per punti" un'immagine messa in un controllo Image
visibile con un'altra caricata in un diverso controllo Image invisibile,
pensavo di recuperare un punto dalla seconda con Point e assegnarlo alla
prima con Pset. Uso delle Image per approfittare della proprietą Stretch,
per me indispensabile.
Dopo molte prove, mi par di dedurre che la Point funziona solo per punti
visibili.
Ho visto anche la PaintPicture, ma lavora per zone e, anche ammettendo di
ridurre la zona a un punto, non mi pare sia applicabile a Image, ma solo a
Picture o Form.
Escludendo OCX o DLL senza codice sorgente, esiste qualche modo (anche API)
che consenta di rilevare il colore di un punto di una Image invisibile nella
quale sia stata caricata un'immagine? Grazie.

 quale sia stata caricata un'immagine? Grazie.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 di Image.
Confermo che è possibile simulare lo Stretch (si veda la PaintPicture
sopra), ma, nella fattispecie, non è questo il problema.

    Next x
Questo codice funziona benissimo (a parte la lentezza, ma suppongo sia
una prova):
ho messo AutoRedraw a true per entrambe le picture box e l'immagine e'
stata assegnata alla proprieta' Picture di p2.
-- 
ciao, hal

 stata assegnata alla proprieta' Picture di p2.
Sì, p2 viene regolarmente caricata, ma se l'istruzione p2.visible viene
abilitata (com'è nel codice) i vari p2.Point prelevano sempre colore -1
(direi bianco pieno) e quindi il p1.Pset non riproduce l'immagine presente
in p2, indipendentemente da AutoRedraw


Scusa l'ignoranza, ma se devi mantenere la p2 invisibile, non è meglio
caricare l'immagine in una variabile StdPicture?
(oh, beh, è soltanto una riflessione...)
--------------------------------
Inviato via 
http://usenet.libero.it

 (oh, beh, è soltanto una riflessione...)
Mi sta bene qualunque cosa, ma devo poter rilevare il colore dei punto da
un'immagine invisibile.
La domanda è sempre quella: Come fare?


Rilevare il colore di *un singolo punto* (cioè solo qualche punto
dell'immagine) o tutta l'immagine punto per punto, per poi copiarla?


 dell'immagine) o tutta l'immagine punto per punto, per poi copiarla?
Direi che la verità/volontà sta in mezzo: Un punto per volta, ma tutti i
punti. Come dicevo nel post iniziale, devo "sostituire per punti"
un'immagine esposta con un'altra, nascosta. Per dare qualche effetto ho
pensato di rilevare i singoli punti, uno per volta, e assegnarli, sempre uno
per volta, all'immagine già esposta, sostituendoli a quelli dell'immagine
che diventa "vecchia". Il problema è che, appunto, la "nuova" immagine fonte
è nascosta e non riesco a rilevarne il colore dei vari punti. Spero di
essermi spiegato.


(Premetto che non l'ho mai fatto prima e non so se funziona)
Prova così:
invece di utilizzare p2, e poi p2.Visible = False , puoi utilizzare una
variabile.
Dim ImmagineNascosta as StdPicture
ImmagineNascosta.Picture = LoadPicture("C:\pippo.jpg")
Poi prova il Point su questa variabile.
Non so se funziona, speriamo di si...


 Non so se funziona, speriamo di si...
Non va.


Allora non so come aiutarti, mi dispiace. Se trovo qualcosa, lo posto qui.
Ciao


 ha scritto:

Altra idea: non puoi sovrapporre le due PictureBox? Quella sotto, visibile,
la riempi con la bitmap da modificare, e in quella sopra, visibile, ci copi
i punti e mano mano li modifichi.
Potrebbe andare?


in p2, indipendentemente da AutoRedraw
Non diciamo cazzate: ho eseguito il codice prima di postare.
-- 
ciao, hal

 Non diciamo cazzate: ho eseguito il codice prima di postare.
E' vero. Con autoredraw=True per entrambe (o anche solo per p2, salvo non
fare alcun refresh) funziona, anche se molto piů lentamente di quello che si
puň ottenere (con autoredraw=false) se p2 fosse visibile. Ho detto una
cazzata.