Newsgroup: it.comp.lang.visual-basic
Titolo: GDI - VB.NET

Ciao a tutti,
Ho un problema nella nitidezza del disegno su una Bitmap, uso
l'oggetto graphics inizializzato ed utilizzato così:
Dim Bmp as Bitmap = new bitmap (100,100)
Dim Elementi As Graphics = Graphics.FromImage(Bmp)
elementi.drawline(pens.blue,10,10,100,100)
bmp.save("c:\a.bmp")
Adesso, quando apro l'immagine e faccio un zoom +  vedo che la linea è
disegnata con alcuni segni "sbiaditi" come se la linea fosse
ombreggiata, vorrei fare un segno più nitido edeciso (spero di aver
reso l'idea). Qulacuno avrebbe documentazione in merito? Qualche
articolo o qualcosa?
Grazie mille. Cioa cioa

È a causa dell'antialiasing.
Dovrebbe esserci un opzione in Graphics (o in Bitmap, non ricordo) per 
disattivarlo.
Ciao,
-- 
Carmine
Webmaster di 
www.thetotalsite.it
Blog 
http://blog.thetotalsite.it
 

 Bloghttp://
blog.thetotalsite.it

Ciao,
Intanto grazie per la risposta. Ho provato a disattivarla, con il
codice che segue:
dim ele as graphics
ele.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
Ho provato anche con tutte le proprietà di SmoothingMode, ma non
succede niente di rilevante
ho utilizzato anche
ele.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor
ma non c'è niente da fare, non funziona.
avresti altre idee?
Grazie ancora, ciao ciao

On 28 Nov, 09:51, "
marcelo.scol...@gmail.com
"

Abbi pazienza....ma come fai lo zoom e che cosa vorresti ottenere???
Mi spiego...
voglio fare lo zoom di una immagine
è diverso da
fare lo zoom di un progetto architettonico!
Caso uno
zoom di una immagine
l'immagine ha un sua struttura....e una sua risoluzione
ragioniamo a spanne: se in 1 cm ci sono 100pixel....se ingrandisci di
100 volte vedrai SOLO UN PIXEL...ossia " un quadratone"...e va bene
così...a meno di complessi algoritmi di ricostruzione non ti può
mostrare "quello che non c'è"
Caso 2
zoom di un progetto architettonico
qui sei in ambito diverso...l'immagine è vettoriale: ogni immagine è
costruita con primitive grafiche e forendo le coordinate per
disegnarle.
Qui a qualsiasi livello di zoom ottieni sempre "roba nitida" perchè in
base allo zoom ricalcoli al volo le coordinate e "ridesegni" la parte
di immagine per quel livelo di zoom.
Quindi
è normale sgranare un bitmap a livelli elevati di zoom!...se lo fà
photoshop...perchè non dovrebbe farlo il tuo programma??? ;o)


ho cambiato notebook ....ancora mi devo abituare a questa tastiera
"morbidosa" e alla nuova disposizione di alcuni tasti...scusate gli
errori di battitura!

 photoshop...perchè non dovrebbe farlo il tuo programma??? ;o)
A me sembrava di capire che lui volesse la sgranatura... cioè come
quando fai lo zoom di una linea disegnata su paint! mi capitò tempo fa
un problema simile e risolsi proprio con
g.InterpolationMode = Drawing2D.InterpolationMode.NearestNeighbor
dove g è un oggetto Graphics.
Con cosa lo fai lo zoom? col visualizzatore immagini e fax di windows?
Se non ricordo male quel programma smussa sempre le immagini, quindi
dopo aver salvato l'immagine prova ad aprirla con paint e fai lo zoom
da li.
ciao

 wrote:
zac
Si ma mi sà che ha un concetto un po "da chiarire" su alcuni aspetti
della grafica computerizzata.
Se prendi una matita e disegni una linea obliqua su un
foglio....potrai aumentare lo zoom all'infinito e non perdere nessuna
informazione!
Se ci ricordiamo di "applicazioni tecniche" in terza media (ai miei
tempi si faceva....) o le lezioni di disegno del liceo....si può
ingrandire un disegno o rimpicciolirlo...
Non si perde NESSUNA informazione (il cerchio rimane tondo...la linea
rimane obliqua)
perchè?
Perchè siamo in ambito analogico....ed in ambito analogico fra 0 e 0,1
esistono infiniti numeri!  E se conosco la formula per ingrandire e/o
rimpicciolire lo posso fare all'infinito!
Diverso è l'ambito digitale...hai una QUANTITA' FINITA di numeri
disponibili...che dipendono da tante cose: processore, registri
processore,ram, compilatore., algoritmo di rappresentazione numeri.
Questo perchè sei in ambito digitale...fra 0 e 1 ...esiste solo lo
zero o solo l'uno!
Quindi una immagine ha un numero finito di punti...lo schermo ha un
numero finito di pixel...la scheda grafica ha un numero finito di
risoluzioni possibili (ossia di pixel indirizzabili)
Ed il problema ti nasce per le linee oblique ad esempio...
dove devi "quantizzare" l'informazione...e se per una linea a 45 gradi
non ci sono molti problemi (pixel che si "toccano" solo per uno
spigolo)...per una linea a 30 e a 12 o a 74 gradi?
Zoomando la linea può non apparirti continua...ed apparirti come una
accozzaglia di pixel messi a caso...e se hai l'anti aliasing ancora di
più a caso!
non è un difetto del programma...è che non hai la possibilità di
rappresentare dei numeri con quello che passa il convento!
Ecco perchè le immagini vettoriali sono usate per i progetti...perchè
sono indipendenti (in una certa misura) dalla risoluzione...
Lo zoom di immagini bitmap...è così!....il cerchio è un cerchio alla
risoluzione "standard"....a livelli elevati di zoom...smette di essere
una curva!