Newsgroup: it.comp.lang.visual-basic
Titolo: Point() e Pset()

perchč non mi funzionano?
allora, ho due PictureBox. carico un'immagine bitmap in PicBox1
(autosize=true)
poi metto questo codice:
for X=1 to PicBox1.Width
    for Y=1 to PicBox.Height
        PicBox2.Pset 0,X,Y,PicBox1.Point(X,Y) 'e prende il colore dalla
stessa posizione, sull'altra pbox
    next Y
next X
come si usano? ho una bitmap grande, e dovrei dividerla in un numero di
pezzi e disegnarli in delle PictureBox piů piccole
chi mi aiuta?
--
ciao
- Xaero -
"Quando ero piccolo i miei genitori mi
 volevano cosě bene che nella culla mi
 misero un orsacchiotto vero"

 perchè non mi funzionano?
[CUT]


 Next X
non funziona lo stesso
comunqe ho provato ad usare solo l'istruzione PSet su di un PictureBox da
sola, senza cicli for e non disegna nessun punto!!
help me!
--
ciao
- Xaero -
"Quando ero piccolo i miei genitori mi
 volevano così bene che nella culla mi
 misero un orsacchiotto vero"

Anch'io avevo avuto un problema del genere, e mi sembra di averlo risolto
smanettando un po' con la proprieta' scalemode (o mettendo scalewidth e
scaleheight al posto di width e height). Scusa se non posso essere piu'
preciso, piu' tardi provo a controllare e nel caso ti riscrivo.
BTW, una cosa che ricordo benissimo e' che il tutto era mostruosamente
lento... Forse ti conviene passare ad una libreria di elaborazione
dell'immagine, ne esistono di ottime a poco prezzo (con versione demo).
Ciao!

 dell'immagine, ne esistono di ottime a poco prezzo (con versione demo).
si, ma non penso che possa essere così lento...
io devo solo splittare in'immagine di 80x16 in 5 picbox da 16x16
comunque quando avrò provato (e ci sarò riuscito) ti faccio sapere anche le
prestazioni ;-)


prestazioni ;-)
Credo che Brando abbia centrato il problema: quando lavori con le immagini
(a me piace parlo comunque) č meglio impostare ScaleMode (sia del form che
della picturebox) a vbPixel.
Per la questione lentezza ha ancora ragione.
Ti consiglio l'uso delle API GetPixel() e SetPixel().
Ancora meglio, se il tuo problema č tagliare a pezzi un'immagine usa l'API
BitBlt() con l'ultimo parametro settato a SRCCOPY.
Ciao

 Prova un po' se cosi' funziona.
Inoltre non usare le proprietą Height e Width: č meglio usare le ScaleHeight
e ScaleWidth che si riferiscono all'interno della picturebox.
Controlla inoltre, se non ci sono altre limitazioni, di aver settato
PicBox1.ScaleMode=Pixel e lo stesso per la PicBox2.
Queste cose non compromettono la funzionalitą del programma ma possono
sempre risultare utili.
Ciao
--
Diego Mazzaro
"L'importante non č conoscere tante cose ma sapere dove trovarle" A.
Einstein
http://space.tin.it/computer/btqmaz/diego

 BitBlt() con l'ultimo parametro settato a SRCCOPY.
mi fai un esempio pure di questa?
grazie
--
ciao
- Xaero -
"Quando ero piccolo i miei genitori mi
 volevano cosě bene che nella culla mi
 misero un orsacchiotto vero"

> BitBlt() con l'ultimo parametro settato a SRCCOPY.
    Questa č un po' piů complessa per via dell'ultimo parametro che permette
di fare operazioni binarie sulla combinazione dei colori di partenza e
destinazione, ma anche questa č abbastanza semplice:
'copio un quadrato di 10 x 20 pixel da Picture1, partendo da (8; 16) in
Picture2 in posizione (4; 8)
    Call BitBlt(Picture2.hDC, 4, 8, 10, 20, Picture1.hDC, 8, 16, SRCCOPY)
Ciao.

grazie di tutto!
