La clase BitmapData es una de las nuevas clases de Flash 8 que nos permiten manejar las imágenes a nivel de píxeles por medio de programación; permitiendo hacer ediciones y manipulación avanzada de imágenes mas allá de los filtros que ya todo diseñador conoce; obviamente, por Actionscript.
De este modo, la clase nos permite, por ejemplo, saber el color exacto en hexadecimal de un píxel dado, el cual podemos modificar como queramos.
La historia es que la misma imagen importada en la biblioteca de Flash y cargada dinámicamente devuelve colores diferentes con el método getPixel.
Curiosamente la imagen cargada dinámicamente devuelve SIEMPRE un valor menos en el valor RGB que la incluida en la biblioteca; por ejemplo, el blanco (#FFFFFF) lo devuelve como #FEFEFE
Aquí un ejemplo del bug funcionando; vean como, aun siendo la misma imagen y en la misma posición, los colores dan distintos.
[Descargar FLA]
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Emiliano Velasco el 13 de Diciembre de 2005
Veo que es un bug bastante molesto... e impredecible.
Se nota que estas desarrollando algún proyecto muy específico y que te está quebrando un poco la cabeza...
Ya te dije, tienes que llamar a Adobe, y decirles que desde el 3 de diciembre, que todo te anda mal... que no puede ser... antes no te pasaba...
Salu2,
Emiliano Velasco
Por llops el 13 de Diciembre de 2005
No he tenido mucho tiempo de probar, pero te has fijado que si cambias la compresion a PNG/GIF (tu tienes en la biblioteca un png con compresion jpg) en el mismo píxel da otro valor?
Yo veo esto lógico, ya que dependiendo de la compresión cambias la cantidad de colores y el valor de éstos. Seguramente por la forma de tratar flash la importación y el ajuste de imágenes, y la forma de cargarlos dinámicamente, realmente las 2 imágenes no sean las mismas a nivel de píxel.
Pero bueno, no dejan de ser especulaciones Saludos!
Por Menchu el 13 de Diciembre de 2005
Por oscar el 13 de Diciembre de 2005
y la pregunta del millon es de quien es el problema ( Adobe o ? )...
Por Elecash el 13 de Diciembre de 2005
Por cierto danisan, buena observación lo del tema de la compresión GIF/PNG, desde cierto punto de vista me parece lógico que si cambias la compresión devuelva diferentes valores, pero me parece impresentable que una imagen PNG devuelva un valor menos que la MISMA imagen PNG.
Al principio pensamos que esto también podía ser porque era un sistema basado en zero-index, pero esto lo descartamos rápidamente porque los valores RGB van de 0 a 255, es decir, ya son zero-index.
En fin, creo que es un error grave pero fácilmente arreglabe por los chicos de Macr... errr... Adobe
Deu!!
Por llops el 13 de Diciembre de 2005
Elecash :
para mi la cuestión es esa, que NO es la misma imagen. Otro ejemplo:
En tu fla, en opciones de publicación, tienes puesta la calidad de jpeg por defecto, es decir, al 80. Si la pones al 100 verás que los valores son diferentes:
Código :
Y si ponemos la calidad al 2 obtendríamos blancos y grises solamente. Cualquier parámetro referente al tratamiento de la imagen altera el valor del pixel.
Por eso digo que desde el momento que se importa (y por lo tanto, entiendo que se trata en mayor o menor medida) una imagen a flash, a nivel de byte no es la misma. Puede ser que incluso la lectura dinámica del píxel no sea la misma que daría en un applet de java, por decir algo.
Mirándolo así no considero que sea un bug. Otra cosa es si una imagen embebida en el player tendría que ser fiel a la imagen original, a lo mejor ahí podríamos hablar de cagada.
Saludos!
Por Elecash el 13 de Diciembre de 2005
Además, aunque en configuración de publicación ponga la calidad a 100 sigue dandome los mismos resultados de color, así que sigo pensando que es un error.
Si publico a 100% de calidad y la imagen de la biblioteca tiene marcada la opción "Use document default quality" en ambas dos imagenes tengo la calidad REAL, y aun así, me da mal los valores.
No se que opinará la gente al respecto, pero a mi me parece error del programa...
Por vtisnado el 14 de Diciembre de 2005
Ya lo vi! antes del 3 de diciembre no pasaba esto!!!
Antes tooooodoooo iba bienn..
!
Por JohanFX el 14 de Diciembre de 2005
De todas maneras aunque utilicemos la calidad PNG/GIF en Properties, siempre flash sigue recomprimiendo la imagen, por ejemplo si tenemos activada la opción "Comprimir película" en Publish settings.
Yo estoy de acuerdo con danisan en que nunca serán la misma imágen una cargada exteriormente que una importada en la biblioteca.
Aunque siempre queda el tema del 3Diciembre!!!!
Por Sisco el 14 de Diciembre de 2005
Saludos
visca el Barça!
Por _CONEJO el 14 de Diciembre de 2005
L$, no se que tipo de aplicación estás desarrollando que implique comparar dos imágenes pixel a pixel y que tengan que devolver exactamente los mismos valores, pero se me ocurren varias soluciones.
1.- Si (condicional) sabemos que las dos imágenes son la misma, solo tenemos que hallar el valor de un pixel en concreto, por ejemplo el 1,1 de ahí sacamos si ambas devuelven el mismo valor o se diferencian por uno, si es por uno pues solo tendríamos que sumarselo/restarselo a los siguientes valores que nos devuelva
2.- No sabemos si la imagenes son iguales, entonces empezaríamos a comprobar datos, como extensión, tamaño,... en caso de que todo eso fuera "igual" iriamos pixel a pixel recuperando la información (tedioso, pero aún así lo íbamos a hacer no?) Si en todos esos pixeles la diferencia es 1, acordamos entonces que las imágenes son iguales y sumamos/restamos 1 a los valores devueltos. en caso de que se diferencien en distintos valores concluimos en que las imagenes no son iguales
Por Sisco el 14 de Diciembre de 2005
Por Maikel el 14 de Diciembre de 2005
saludos
Por Elecash el 14 de Diciembre de 2005
JohanFX_blog :
Pues yo sigo pensando que si Flash no lo hace debería hacerlo. Además, me parece remotamente absurdo que devuelva un valor menos en cada uno de sus valores RGB, no es que el FFFFFF devuelva FEFEFE, es que lo hace con todos, creo que no costaría NADA a Adobe controlar una diferencia de un punto en una imagen cargada dinámicamente y otra no.
The Bunny :
Tranqui ICE, que no es un problema dificil de arreglar, solo que fue muy complicado detectarlo, nada más.
Deu!!
Por Jose Carlos el 28 de Marzo de 2006
Por romulo esquibel varg el 25 de Septiembre de 2006
sabes tengo un problema yo soy un estudiante de informatica y tengo un trabajo que realizar animar una serie de fotos.
primero.-quiero llamar una foto con un boton y la maquina me responde que a la memoria le falta espacio no se derrepente ud me puede ayudar garcias
Por Naxo el 14 de Septiembre de 2007
Por MarD el 28 de Febrero de 2008
Tengo un problema con imagenes cargadas exteriormente en un ScrollPane del flash (en una pelicula de una pagina web [http://www.mbimbern.com]). El problema es que se me pixela las imagenes de un groso modo .
Me gustaria saber si hay alguna forma en flash de que esto no suceda, ya que se que el flash reescala la imagen al cargarla (lo raro es que la achica y asi y todo pixela mucho)o si deberia recurrir a programas de edicion de imagen para guardarlas en otro formato o con otra calidad distinta (actualmente las tengo en jpg.)