Se sto scrivendo codice di disegno in Graphics Core su Mac OS X o iPhone OS, è possibile impostare il colore di riempimento attivo rosso chiamando:È prevista una penalità per la miscelazione degli spazi colore? (Core Graphics)
CGContextSetRGBFillColor(context, 1.0, 0.0, 0.0, 1.0); // RGB(1,0,0)
Se voglio grigio al 50%, ho potuto chiamata:
CGContextSetRGBFillColor(context, 0.5, 0.5, 0.5, 1.0); // RGB(0.5,0.5,0.5)
Ma per sfumature di grigio si sta tentando di fare una linea più breve e chiamare:
CGContextSetGrayFillColor(context, 0.5, 1.0);
Carn er, questa funzione NON sta semplicemente chiamando il metodo RGB con il valore di intensità copiato tre volte; invece sta cambiando lo spazio colore del contesto da DeviceRGB a DeviceGray. La prossima chiamata a un metodo RGB lo cambierà.
Sono curioso di sapere:
- Qual è la pena per la commutazione spazi di colore?
- È prevista una penalità per il disegno quando lo spazio colore del contesto non corrisponde allo spazio colore nativo del dispositivo? (cioè, disegno in DeviceGray contro DeviceRGB)
Sto chiedendo per curiosità tecnica, non un desiderio di ottimizzare prematuramente, quindi per favore mantieni le tue ammonizioni al minimo, per favore.
Non ho idea se sia più veloce, ma non potresti testarlo costruendo un progetto di test che verifica questo? Una corsa eseguiva il test del riempimento utilizzando sempre lo stesso spazio colore, mentre l'altro passava da uno spazio colore all'altro. Direi che se c'è una penalità, è nel convertire i valori del colore dallo spazio colore allo spazio colore della bitmap, ma la differenza sarebbe trascurabile tra i test. – lucius
Sì, a questo punto ho intenzione di scrivere un codice di prova quando ho tempo. Stavo aspettando di ottenere un badge Tumbleweed, ma sembra che la mia domanda non sia abbastanza interessante. – benzado