Foros del Web » Programación para mayores de 30 ;) » Java »

Cargar Imagen

Estas en el tema de Cargar Imagen en el foro de Java en Foros del Web. Buenas y perdonad a todos por insistir de nuevo con la misma pregunta, os mando estas lineas de codigo, desde otro método mando una imagen ...
  #1 (permalink)  
Antiguo 20/05/2008, 01:51
 
Fecha de Ingreso: enero-2008
Mensajes: 147
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Cargar Imagen

Buenas y perdonad a todos por insistir de nuevo con la misma pregunta, os mando estas lineas de codigo, desde otro método mando una imagen y ademas debo cargar una aqui, para que con las dos matrices de pixeles ejecutar una determinada operacion. El problema me da cuando sospecho (no 100% seguro) que la imagen que aqui debo cargar no me la carga:

[I]personal = new ImageIcon("/personales/gato.jpg").getImage().getScaledInstance(25,35,0);
pixelsc = new int [25*35];
pixelsca = new int [35][25];
pgc = new PixelGrabber(caracter, 0, 0, 25, 35, pixelsc, 0, 61);
try{pgc.grabPixels();}
catch (InterruptedException e){}
corr = new int [135];
// Almaceno los pixeles de la matriz pixelsm[i*j] en otra matriz pixelsma[j][i]
for ( j = 0; j < 35; j++){
for ( i = 0; i < 160; i++){
pixelsma[j][i]=pixelsm[m];
m++;
}}
// Almaceno los pixeles de la matriz pixelsc[i*j] en otra matriz pixelsca[j][i]
for ( j = 0; j < 35; j++){
for ( i = 0; i < 25; i++){
pixelsca[j][i]=pixelsc[c];
c++;
}}
// Desarrollo el algoritmo que nos realiza la operación
for ( k=0; k<160-25; k++){
for ( j = 0; j < 35; j++){
for ( i = 0; i < 25; i++){
operacion[k]=operacion[k] + (pixelsma[j][k+i]*pixelsca[j]);
}}}

Sospecho que la imagen a la que hago referencia con personal no me la carga porque el resultado de la operacion me da 0.
  #2 (permalink)  
Antiguo 20/05/2008, 03:59
 
Fecha de Ingreso: enero-2008
Mensajes: 147
Antigüedad: 16 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Cargar Imagen

De momento solucionado, el problema lo tenia en que debo poner la ruta al completo, es decir, desde C:/..../ así hasta la ultima carpeta donde se encuentra la imagen que es justo donde los ficheros .java o en la carpeta build. Si la coloca en una carpeta interna a una de estas tampoco funciona, y dentro de la carpeta build tampoco es recomendable porque al limpiar desaparece y probablemente tampoco funcione. El caso es que así lo habia intentado varias veces, pero en el recuadro de run aparecia un erro de arrayindexout en pixelgrabber en letras azules y sin observar mas abajo cerraba y retocando volvia a compilar. Pues a pesar de aparecer ese error la operacion que yo deseo la ejecuta y parece que perfectamente, espero que algo de esto os sirva a vosotros y cada uno de los que lo hayais leido y no perdais tanto tiempo tropezando como yo.

¿Alguien podría decirme el porque de estos problemas con la ruta de imagenes?
explicarme brevemente porque en unos sitios funciona y en otros no segun coloques la imagen.
  #3 (permalink)  
Antiguo 20/05/2008, 06:13
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Cargar Imagen

Si le pones un path relativo a una imagen al crearla, funcionara dependiendo de donde este la imagen relativa al path que se toma como referencia.

Si no le pones nada, Java utiliza como directorio de referencia el "working dir", que normalmente es donde se ejecuta el comando java. Asi que dependiendo de donde/como ejecutes la aplicacion, los paths relativos acaban apuntando a un sitio o a otro.

Asi en general, es bastante poco "robusto" usar paths relativos y es mejor buscar/indicar explicitamente un path para tomar como referencia.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #4 (permalink)  
Antiguo 20/05/2008, 10:10
 
Fecha de Ingreso: enero-2008
Mensajes: 147
Antigüedad: 16 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Cargar Imagen

Muchas gracias muchacho, to lo que sabes y encima simpatico y atento para contestarme las preguntas.
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 17:20.