Ciao a tutti, scrivo questo articolo per riportare feedbacks e aggiustamenti proposti da alcuni sviluppatori
interessatisi al mio post sulla distorsione delle immagini utilizzando GDI+
ed il relativo algoritmo.
Ho davvero apprezzato i contributi da parte di Luke Jackson della Lateral
e di Gilberto Carcano (brillante ed appassionato connazionale).
- Luke Jackson:
- ha migliorato il processo di rendering dell'immagine tramite una procedura di interpolazione bilineare.
Voglio riportare una parte della e-mail che mi spedì a suo tempo:
«...I have adapted your code to create 3D-style book covers for a website I am currently building. I have made some changes which you may be interested in:
1. the code does not produce a mirror image when drawing to an area outside of ABCD. therefore you don't need to mask them out after the loop.
2. the code uses bilinear interpolation when setting the value of the pixel. e.g. (0.2, 0.8) will do a weighted average of source pixels (0,0), (0, 1), (1, 0), (1, 1) instead of taking the pixel (0, 1) only.
3. the code uses alpha transparency around the edges of the image, to remove the jagged lines, and also allow the image to be placed over a background.
4. i fixed getintersection which would return a non-null point (with one of the coordinates set to + or - infinity) when two lines did not intersect...»
Qui il link al suo distortion-enhanced website.
- Gilberto Carcano:
- mi ha recentemente proposto un algoritmo più appropriato - leggi "corretto" - (vedi qui come riferimento), il quale proietta l'immagine originale sul quadrilatero distorto rispettando
le leggi geometriche della prospettiva.
Mooolto apprezzato...
Vediamo i risultati:
- Versione originale:

- Versione di Luke:

- Versione di Gilberto:

Infine, le righe di codice gentilmente inviatemi e di cui, ovviamente, faccio tutti partecipi:
« contributo di Luke (versione VB.Net inclusa)
« contributo di Gilberto
Take care. Bye.
Feedbacks