¿Hay alguna forma de convertir los valores RGB en valores RYB en el desarrollo de iOS?

Esto parece un problema muy interesante para una clase avanzada de Objective-C. Por lo que he visto, no hay soporte nativo para RYB, por lo que necesitaría construir su propia clase derivada de UIColor. Esta clase haría la conversión y pasaría los valores entre su aplicación y la clase nativa. Una posible solución se explica aquí http://stackoverflow.com/questio…

La razón por la que digo que este es un problema interesante es porque probablemente necesitará hacer una optimización seria para reducir el tiempo que lleva hacer la conversión. El retraso podría convertir una gran idea en una experiencia insoportable. [1]

Otra opción sería crear una rueda de color ‘lineal’, que es el otro método utilizado para convertir entre los dos espacios. Lo llamo lineal porque podría crear una tabla con todas las combinaciones (RGB y RYB equivalentes lado a lado) y todo lo que su rutina necesita hacer es una búsqueda, ya sea utilizando el soporte nativo para SQLite o un ad-hoc rutina. Puede usar la solución de Stack Overflow para llenar su tabla, de modo que todos los cálculos se hagan para la aplicación. Sin embargo, esta solución presenta otro problema: la tabla resultante tendría casi 17 millones de registros. La búsqueda tomará un poco de tiempo y su aplicación se hinchará.

De manera similar, como la primera solución requería optimización, esta requerirá una forma creativa de reducir el tamaño de la tabla de búsqueda, ¿tal vez una simple interpolación?

¡Buena suerte!

[1] Actualización: Encontré las siguientes funciones de JavaScript en este sitio web: http://www.paintassistant.com/ry… No creo que incluso un iPod touch de primera generación tenga problemas para realizar esta función lo suficientemente rápido como para proporcionar un IU muy sensible.

Los valores RYB están restringidos de 0 a 1
Los valores RGB van de 0 a 255

  función cubicInt (t, A, B) {
           var peso = t * t * (3-2 * t);
           devolver A + peso * (BA);
           }

	 función getR (iR, iY, iB) {
		 var x0, x1, x2, x3, y0, y1;
		 //rojo
		 var x0 = cubicInt (iB, 1.0, 0.163);
		 var x1 = cubicInt (iB, 1.0, 0.0);
		 var x2 = cubicInt (iB, 1.0, 0.5);
		 var x3 = cubicInt (iB, 1.0, 0.2);
		 var y0 = cubicInt (iY, x0, x1);
		 var y1 = cubicInt (iY, x2, x3);
		 return Math.ceil (255 * cubicInt (iR, y0, y1));
         }

	 función getG (iR, iY, iB) {
		 var x0, x1, x2, x3, y0, y1;
		 //verde
		 x0 = cubicInt (iB, 1.0, 0.373);
		 x1 = cubicInt (iB, 1.0, 0.66);
		 x2 = cubicInt (iB, 0.0, 0.0);
		 x3 = cubicInt (iB, 0.5, 0.094);
		 y0 = cubicInt (iY, x0, x1);
		 y1 = cubicInt (iY, x2, x3);
		 return Math.ceil (255 * cubicInt (iR, y0, y1)); 
          }

	 función getB (iR, iY, iB) {
		 var x0, x1, x2, x3, y0, y1;
		 //azul
		 x0 = cubicInt (iB, 1.0, 0.6);
		 x1 = cubicInt (iB, 0.0, 0.2);
		 x2 = cubicInt (iB, 0.0, 0.5);
		 x3 = cubicInt (iB, 0.0, 0.0);
		 y0 = cubicInt (iY, x0, x1);
		 y1 = cubicInt (iY, x2, x3);
		 return Math.ceil (255 * cubicInt (iR, y0, y1));
           }

	 función RYB2RGB () {
		 var R = document.all.r0.value;
		 var Y = document.all.y0.value;
		 var B = document.all.b0.value;


		 Si ( 
			 isNaN (R) ||  isNaN (Y) ||  isNaN (B) ||

			 (R  1) ||
			 (Y  1) ||
			 (B  1) 
			 )
			 {
			 alerta ('valores RYB no válidos');
			 regreso;
		 }
		 // ----------------------------
		 var R1 = getR (R, Y, B);
		 var G1 = getG (R, Y, B);
		 var B1 = getB (R, Y, B);


		 // ----------------------------
		 document.all.r1.innerText = R1;
		 document.all.g1.innerText = G1;
		 document.all.b1.innerText = B1;
		 // -----------------------------


		 document.getElementById ("colorBox"). style.backgroundColor = "rgb (" + R1 + "," + G1 + "," + B1 + ")";

	 }

More Interesting

¿Puede (y debería) una persona saltar directamente a aprender a codificar en Swift (OS X) para convertir su idea en una aplicación real a pesar de que tiene un conocimiento casi nulo sobre programación y codificación?

¿Cuál es una buena máquina de nivel de entrada para ejecutar Xcode para el desarrollo de iPhone?

Cómo obtener proyecciones financieras para aplicaciones móviles

Cómo encontrar el código fuente de cualquier sitio web o aplicación móvil

¿Cuáles son las mejores prácticas para el desarrollo de aplicaciones móviles?

¿Qué software es mejor para crear aplicaciones multiplataforma?

¿Cuál es la mejor manera de dividir el trabajo de desarrollo de una aplicación entre dos o más desarrolladores separados geográficamente?

¿Cuál es la diferencia entre un sitio web y una aplicación móvil? ¿Qué beneficios obtiene un comercio electrónico de una aplicación móvil en términos de impuestos?

¿Cuáles son los pasos para contratar a un desarrollador de aplicaciones móviles?

Como principiante en el desarrollo de aplicaciones móviles, ¿PhoneGap es una buena opción para comenzar a desarrollar aplicaciones?

¿Cuál es la breve descripción sobre el desarrollo de aplicaciones de Windows?

¿Qué características deberían formar parte del mejor sistema de turismo / viajes?

¿Qué lenguaje de codificación es mejor para mí?

¿Dónde puedo encontrar el instalador sin conexión para Windows Phone SDK 8.1?

¿Quiénes son las mejores empresas offshore en el sudeste asiático especializadas en desarrollo móvil y web?