Logo UGIdotNET

Discussione 'Oggetto ColorPalette'

# Pubblicato il 12 dic 2003 22.43 - Rispondi
Walter Villa
Oggetto ColorPalette
Salve a tutti ,sono nuovo nuovo di questo Forum e anche del linguaggio C#.
Mi chiamo Walter.

Il mio problema è che non riesco a visualizzare gli elementi dell'array di oggetti Color che dovrebbero essere presenti tramite la proprieta' Palette della mia immagine Image.

Vi metto il semplicissimo codice della classe:

// created on 12/12/2003 at 21.53

using System;
using System.Drawing;
using System.Drawing.Imaging;

class AppFoto
{
public static void Main()
{
Image img;
img = Image.FromFile(@"C:\foto\MarinadiGrosseto\Walter\Su-e-Giu.jpg");
ColorPalette CPal;
CPal = img.Palette;
Console.WriteLine("{0}",CPal.Entries.Length);
}
}


Perche mi stampa il valore 0 x la lunghezza dell'array???
Perche non contine nulla?

Ho letto la documentazione della classe ColorPalette e non capisco dove sto sbagliando ?!?!

Chi mi illumina???

Grazie 1000

Ciao
Walter


# Pubblicato il 13 dic 2003 15.41 - Rispondi
Paolo Alberti
Re: Oggetto ColorPalette
Usa un file gif al posto di una jpg,
(il formato jpg non usa una palette per la rappresentazione dei colori).
Dopodiche itera tra gli elementi della palette per
leggere i colori di cui è composta.
foreach (Color c in CPal.Entries)
{
Console.WriteLine("colore "+c.ToString());
}
# Pubblicato il 15 dic 2003 9.51 - Rispondi
Walter Villa
Re: Oggetto ColorPalette
GRANDISSIMO!!!!!
In vari Forum ho posto il quesito ma nessuno mi sapeva rispondere!!!

Ora ci provo e poi ti faccio sapere!

GRAZIE 1000000000000000000000

Walter
# Pubblicato il 15 dic 2003 10.20 - Rispondi
Walter Villa
Re: Oggetto ColorPalette
Hai ragione!!! :))

FUNZIONA CON GIF!!!

Mi stampa tutti i valori dei colori.

Ma come si deve fare con i file JPG o Bitmap ???
Io vorrei creare un controllo che mi modifica il colori di base ARGB e il contrasto e la lumnisita della fotografia.

Sai a gradi linee come ci si comporta con gli altri formati ?
(A grandi linee pero'...lasciami soffrire un po a me nel risolverlo...ehehehe)

Grazie molte.

Ciao Walter
# Pubblicato il 15 dic 2003 11.01 - Rispondi
Paolo Alberti
Re: Oggetto ColorPalette
Quando un formato contiene una palette x la descr. della tabella dei
colori ogni pixel fa riferimento alla tabella.
Ad esempio un file con profondità colore di 8 bit conterrà una
tabella (LookUpTable) di 256 colori.
Ogni pixel non riporta il colore assoluto ma, diciamo, un puntatore alla
tabella, quindi se il pixel deve essere rosso questo punterà ad una cella della tabella contenente la decrizione rgb del rosso.
Variando la tabella è possibile altyerare i colori e e creare anche dei cicli creando delle animazioni.
Di solito I file con Palette hanno profondità di 8 bit o meno.
I formati a 16 24 o 32 utilizzano la rappresentazione assoluta dei colori.
Per cambiare le caratteristiche (es. Luminosità) devi caricare in array i valori assoluti e fare degli opportuni calcoli sulla totalità dei pixel.

PA
# Pubblicato il 15 dic 2003 12.45 - Rispondi
Walter Villa
Re: Oggetto ColorPalette
Ho un bel problema pero'.

Tramite la classe di base ColorPalette non posso assegnare nuovi valori all'array Entries che mi permette la sola get.

Come faccio?

Ho provato ad assegnare ad un nuovo array di tipo Color i valori modificati dei campi delle strutture Color in modo da aver un nuovo array da assegnare a un Color Palette che poi assegneri alla proprieta Palette dell'immagine (cosi da avere il cambiamento nell'immagine ) ma non riesco per problemi di accesso in Set dell array.

Come faccio?????

Grazie
Walter
# Pubblicato il 15 dic 2003 13.11 - Rispondi
Walter Villa
Re: Oggetto ColorPalette
HO SCOPERTO IL TRUCCO!!!

Ho usato il metodo SetValue x gli array sull' array Entries.
Gli ho assegnato i nuovi elementi Color modificati e ho poi riassegnato la ColorPalette (con il nuovo Entries) alla Palette della mia immagine ...eeee FUNZIONAAAA!!!

Grazie ancora x le tue preziose informazioni!

Ciao
Walter

© 2001 User Group Italiano UGIdotNET. Tutti i diritti riservati. Note legali. - Partita IVA 01927050185