Java - Imágenes

 
Vista:

Imágenes

Publicado por JMRP (4 intervenciones) el 16/04/2014 13:36:53
Hola.

Estudio JAVA por mi cuenta, y me he encontrado un "pequeño problema" .

Estoy "desarrollando" un pequeño programa de tratamiento de imágenes (JPG), de forma que puedo modificar tamaño, colores, etc. He incluido la opción de deshacer los cambios realizados, para lo cual guardo la imagen en un ArrayList antes de modificarla, de forma que recuperandola después desde el ArrayList debería tener tamaño, brillo, color, etc. como antes de realizar dicha modificación.... Pués no. no consigo restaurar los colores.

¿Aguien puede darme alguna pista???.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Imágenes

Publicado por Tom (1831 intervenciones) el 16/04/2014 16:41:45
Ome, quizás la pista deberías dárnosla tú :D
¿ Qué es "la imagen" que guardas ?
¿ Cómo la creas ? ¿ Dónde y cómo la muestras ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imágenes

Publicado por JMRP (4 intervenciones) el 21/04/2014 11:13:47
El "programa" lee de disco un archivo JPEG y lo presenta como BUFFERED IMAGE, de forma que se puede modificar (oscurecer, aclarar, invertir colores, etc.) para poder deshacer los cambios voy guardando las imágenes, antes de realizar las modificaciones, en un ArrayList, de forma que al seleccionar "deshacer" recupero la copia guardada en dicho ArrayList y la monto sobre el JPANEL. Me restaura el tamaño y algunas otras cosas, pero no el color original. Es es mi pregunta ¿Cómo lo hago?

Gracias,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imágenes

Publicado por Tom (1831 intervenciones) el 21/04/2014 14:43:21
Pues aún no es información suficiente, no vas al meollo de la cuestión ...
Por ejemplo:
¿ Usas el mismo Graphics cuando creas y/o modificas la imagen que cuando la pintas en el panel ?
¿ El Graphics del JPanel es de tipo TYPE_INT_RGB y el de la imagen es TYPE_INT_ARGB (o cualquier otra combinación) ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imágenes

Publicado por JMRP (4 intervenciones) el 21/04/2014 15:47:18
Ante todo Tom, te agradezco el interés.
Debo decirte que si bien tengo mucha experiencia en entornos "tradicionales", en JAVA soy un mero aprendiz. Entiendo que el Graphic es TYPE_INT_RGB, de cualquier forma no lo modifico en ningún momento.
Gracias,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Borja

Imágenes

Publicado por Borja (23 intervenciones) el 21/04/2014 23:27:16
Quizá lo que falle es que en Java cuando haces una asignación tipo Cosa a = b no estas guardando una copia, si no la dirección de memoria.
Pasa lo mismo al "guardar" una variable en un Array, no guardas el valor si no la dirección de memoria, de forma que al modificar la variables que no esta en la array también, estas modificando la que si.

Esto pasa con todos los objetos, excepto con los tipos básicos: int, double, char, etc

Me ha parecido que el fallo podría ser este, pero tampoco has dado información de como usas la estructura ni como haces las asignaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imágenes

Publicado por JMRP (4 intervenciones) el 22/04/2014 09:47:13
Efectivamente Borja, ese es el problema.
Ahora que sé cual es el problema, encontrar la solución es facil. Os agradezco muchísimo la ayuda que me habéis prestado y, sobre todo, el interés que habéis tomado.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar