Discussione:
VB6 - PictureBox - Foto (rovesciate)
(troppo vecchio per rispondere)
Sauro Vicchi
2004-05-08 09:10:55 UTC
Permalink
La mia procedura per organizzare le foto
sta procedendo abbastanza bene.

Mi è rimasto un ultimo problema importante.

La foto è stata fatta tenendo la macchina
fotografica a 90° e quindi si vede "di lato".

Cosa fare?

Grazie e saluti.
Sauro
Utopian [ FTa ]
2004-05-08 09:14:38 UTC
Permalink
Post by Sauro Vicchi
La foto è stata fatta tenendo la macchina
fotografica a 90° e quindi si vede "di lato".
Cosa fare?
non ho molto tempo per spiegartelo, ma io con questo codice la metto a
specchio:

tempPicture.AutoRedraw = True
tempPicture.PaintPicture PictureDaRuotare.Picture, 60, 0, -60, 50, 0, 0, 60,
50, vbSrcCopy
tempPicture.Refresh
PictureDaRuotare.Picture = tempPicture.Image

dove temp picture è una picture temporanea che si prende l'immagine
e picturedaruotare è l'immagine che voglio ruotare.
Zanna
2004-05-08 09:28:35 UTC
Permalink
Post by Utopian [ FTa ]
Post by Sauro Vicchi
La foto è stata fatta tenendo la macchina
fotografica a 90° e quindi si vede "di lato".
Cosa fare?
Registrala così com'è ;)
Post by Utopian [ FTa ]
non ho molto tempo per spiegartelo, ma io con questo codice la metto a
tempPicture.AutoRedraw = True
tempPicture.PaintPicture PictureDaRuotare.Picture, 60, 0, -60, 50, 0, 0, 60,
50, vbSrcCopy
Così puoi solo "flippare" l'immagine.
Per ruotarla è un po' più problematico e probabilmente ci sono diversi
algoritmi, dal più semplice al più efficiente.

Se cerchi in google ne troverai a bizzeffe.

Non so se sul sito comune c'è qualcosa, ma penso di sì.

Magari termoPilucco è arrivato a fare qualcosa con GDI+ :)

Ciao
termoPilucco
2004-05-08 10:10:07 UTC
Permalink
Post by Zanna
Magari termoPilucco è arrivato a fare qualcosa con GDI+ :)
No... mi sono fermato al mio cono di luce ottenuto partendo da questo:
http://www.vbaccelerator.com/home/VB/Code/vbMedia/Image_Processing/Brightness_and_Contrast/article.asp

Per ruotare un'immagine, partendo da quell'esempio dovrebbe essere semplice,
forse basta modificare i cicli del metodo process così (assolutamente non
provato):
For x = 0 To xEnd Step 3
For y = 0 To yEnd
fR = bDib(x + 2, y)
fG = bDib(x + 1, y)
fB = bDib(x, y)
' Apply to DIB
y3=y*3
x3=(x+1)/3
bDibDst(y3 + 2, x3) = fR
bDibDst(y3 + 1, x3) = fG
bDibDst(y3, x3) = fB
Next y
Next x

termoPilucco

Loading...