Foros del Web » Programando para Internet » Javascript »

Colores RGB desde una Imagen

Estas en el tema de Colores RGB desde una Imagen en el foro de Javascript en Foros del Web. Estoy buscando la posibildad de hacer con javascript una aplicacion que al darle una imagen me diga los colores RGB que esta posee.. Alguien tiene ...
  #1 (permalink)  
Antiguo 10/11/2010, 10:46
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Pregunta Colores RGB desde una Imagen

Estoy buscando la posibildad de hacer con javascript una aplicacion que al darle una imagen me diga los colores RGB que esta posee..

Alguien tiene idea si ya hay algo parecido??? o por donde puedo arrancar..

Gracias
  #2 (permalink)  
Antiguo 10/11/2010, 10:52
 
Fecha de Ingreso: septiembre-2004
Ubicación: La Plata Argentina
Mensajes: 128
Antigüedad: 19 años, 7 meses
Puntos: 9
Respuesta: Colores RGB desde una Imagen

Probablemente se pueda con hta (microsoft) o complementos de Firefox. Ambos se pueden programar con javascript.

Saludos
  #3 (permalink)  
Antiguo 10/11/2010, 20:26
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Colores RGB desde una Imagen

no lo aseguro porque nunca lo he hecho pero segun con el metodo getImageData de <canvas> se puede hacer. http://stackoverflow.com/questions/6...om-html-canvas
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #4 (permalink)  
Antiguo 11/11/2010, 02:02
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Colores RGB desde una Imagen

En efecto, con canvas es posible lograrlo (obviamente no funcionará en las actuales versiones de Explorer: para solventarlo habrá que buscar una solución por el lado del servidor o a través de flash y su clase BitmapData).
Un ejemplo aplicando canvas:
http://tirolatlas.uibk.ac.at/papers/...9/ex_read.html
Más experimentos con canvasPixelArray:
http://www.disegnocentell.com.ar/notas2.php?id=254
Algunos ejemplos con flash y BitMapData:
http://www.disegnocentell.com.ar/notas2.php?id=229
Y del lado del servidor, con GD -basado en la función imagecolorat-:
http://www.bandwise.com/snippets/colorpicker.html
  #5 (permalink)  
Antiguo 11/11/2010, 07:05
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Colores RGB desde una Imagen

No me importa mucho que funcione explorar ya que lo estoy haciendo para dispositivos moviles... y actualmente probando en android..

Voy a investigar como lo puedo hacer con canvas... ahora tengo que ver realmente como es esto, por que la verdad estoy medio perdido con el tema...

Gracias por los aportes..
  #6 (permalink)  
Antiguo 11/11/2010, 09:36
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Colores RGB desde una Imagen

Por lo que vi, lo hace con SVG, estoy todavia perdido...

Esto http://tirolatlas.uibk.ac.at/papers/...tribution.html es exactamente lo que necesito...

pero imposible tomarlo o bajarlo para probar...

Alguna idea
  #7 (permalink)  
Antiguo 11/11/2010, 10:02
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Colores RGB desde una Imagen

En realidad no es necesario usar svg, eso es sólo un ejemplo -y por cierto, puedes descargarlo y ver el código fuente y acceder a los archivos javascript que usa desde este enlace: http://tirolatlas.uibk.ac.at/papers/...stribution.svg .
Pero todo eso se puede hacer sin problemas usando únicamente canvas. Fijate cómo se trabaja para leer los colores rgb de cada pixel usando la propiedad data del objeto que devuelve el método getImageData.
Un ejemplo de cómo obtener la información y manipularla podrás verlo en este enlace, en el cual tomé la foto de un amigo y la convertí en ascii art:
http://www.disegnocentell.com.ar/eje...scaleJS/cv.php
  #8 (permalink)  
Antiguo 11/11/2010, 10:37
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Colores RGB desde una Imagen

Gracias panino por tu aporte... lo q estoy haciendo es una aplicacion para telefonos android que al sacarle una foto a algo me de los coleres RGB mas predominantes ...

Ya tengo todo listo menos eso... vamos a ver como me va...
  #9 (permalink)  
Antiguo 11/11/2010, 13:41
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
De acuerdo Respuesta: Colores RGB desde una Imagen

Dando a luz:

Bueno, pude hacerlo con exito, se los pongo aca para que lo vean... ahora me queda ver en algunos foros de Android por que no funciona canvas. y un ultimo tema...

si ven el codigo se los explico mas abajo...

Código HTML:
<!DOCTYPE HTML>
<html>
<head>
    <meta name="viewport" content="width=320; user-scalable=no" />
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>PhoneGap</title>
    <link rel="stylesheet" href="css/app.css" type="text/css">
    <script type="text/javascript" charset="utf-8" src="js/phonegap.js"></script>	  
    <script type="text/javascript" charset="utf-8" src="js/app.js"></script>	  
</head>
<body onload="init();" id="stage" class="theme">
    <a href="#" class="btn large" onclick="show_pic();">Tomar Fotos</a>
    <div id="viewport" class="viewport" style="display: none;">
    	<h1>Localizacion de la Foto</h1>
	    <div id="localizacion" class="localizacion"></div>
        <h2>Foto Tomada</h2>
        <img style="width:300px;height:300px" id="test_img" src="jpg.png" />
        <canvas id="micanvas" width="300" height="300">
        </canvas>
        <a href="#" class="btn large" onclick="tomar_colores();">Tomar Colores RGB</a>
        <div id="colorRGB" class="colorRGB" style="display:none;">
        &#x25D9; Colores de la Imagen
        </div>
    </div>
    </div> 
  </body>
</html> 
Y el js donde esta el codigo.... es

Código HTML:
 function tomar_colores(){
	var hint = document.getElementById('colorRGB');
    var imagenTomada = document.getElementById("test_img").src;
   var ctx = cargaContextoCanvas('micanvas');
   if(ctx){
      var img = new Image();
      img.src = imagenTomada; 
      img.onload = function(){
         ctx.drawImage(img, 0, 0);
	     var count = {};
		var data = ctx.getImageData(0,0,300,300).data;
		for (var i=0; i<data.length; i+=4) {
		  var rgb = "rgb("+data[i+0]+","+data[i+1]+","+data[i+2]+")";
		  (! count[rgb]) ? count[rgb] = 1 : count[rgb]++;
		}
		hint.style.display = "block";
		for (rgb in count) {
			var perc = Math.round(100.0/(data.length/4)*count[rgb]*10)/10.0;
			if(perc>=50){
				hint.innerHTML += '<br><font color="'+rgb+'">&#x25D9; '+ rgb+' ('+perc+'%)</font>';
			}
		}
	  };
   }
};
Si ven esta parte

if(perc>=50){
hint.innerHTML += '<br><font color="'+rgb+'">&#x25D9; '+ rgb+' ('+perc+'%)</font>';
}

Tengo un problema, que al poner una imagen donde ningun color predomina en un 50 porciento, no me muestra ningun color... que me recomiendan para poder colocar como maximo 10 colores RGB que mas predominen... recordemos que pueden variar muchisimo...

Saludos
  #10 (permalink)  
Antiguo 11/11/2010, 13:56
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: Colores RGB desde una Imagen

Mirá, este enlace corresponde a flash, pero verás que tiene bastantes similitudes con canvas y, aunque no las tuviera, lo que importa en este caso es la lógica para determinar los colores predominantes. Vas a ver cálculos que te resultarán, seguramente, muy interesantes y afines con tu objetivo: http://blog.soulwire.co.uk/flash/act...olour-palette/
  #11 (permalink)  
Antiguo 11/11/2010, 14:14
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Colores RGB desde una Imagen

Me imagine algo asi... es pasar a Hexadecimal etc etc etc... tendria que utilizar funciones de javascript para hacer conversiones....

Por ahora, solo estoy usando una idea para colores plenos, que me da un porcentaje de pixeles que tienen el mismo color, el tema es una pequeña variacion y se me desbarata el codigo.. no me funcionaria con fotografias reales...

Asi que bueno... tendre que ponerme mas las pilas...

gracas

Etiquetas: colores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:08.