Autor Tema: javax.imageio.IIOException: Can't read input file! JTextField a BufferedImage  (Leído 5068 veces)

mzamora60

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 17
    • Ver Perfil
Buen dia a todos.

Lo que necesito parece bastante facíl sin embargo ha sido para mi un gran reto y es lo siguiente: requiero cargar la ruta absoluta de las imágenes que se encuentran en un  objeto JTexField dentro de una variable BufferedImage img, pero estoy obteniendo el siguiente error :

javax.imageio.IIOException: Can't read input file!


Ejemplo:

El JTextField tiene la cadena C:\\User\\Desktop\\imagenes\\foto.jpg lo que requiero es que esta ruta se inserte dentro de la variable de tipo BufferedImage img para que pueda manipular la imagen con los metodos de redimensionamiento que ya programé y probé que trabajan correctamente. Aquí mi código y gracias de antemano por lo que se pueda hacer:

Código:

Código: [Seleccionar]
String fichero = txtimagen.getText(); //Se pretende que la variable fichero almacene la cadena que contendra la ruta absoluta //
      String cod = txtfolio.getText();
      ImageIcon dtCat = new ImageIcon(imagen.getfoto(cod));
      Icon icono = new ImageIcon(dtCat.getImage().getScaledInstance(800, 1050, Image.SCALE_DEFAULT));
      lblimage.setIcon(icono);
      sw = true;
 
           
  try {
     
           
            img = ImageIO.read(new File("")); //aqui es donde se requiere la cadena con la ruta absoluta para traer la imagen con la variable de tipo BufferedImage en este caso img.
           
 } catch (IOException ex) {
            java.util.logging.Logger.getLogger(pagosinfonavit.class.getName()).log(Level.SEVERE, null, ex);
        }
       
       
      pd = new zoom(img); 
      pd.repaint();
      lblimage.add(pd);     
     
     JToolBar barra = new JToolBar();
      JMenuItem aumentar = new JMenuItem("Zoom (+)");
      aumentar.addActionListener(new ActionListener() {
         
   @Override
     public void actionPerformed(ActionEvent e) {
      if(sw){
           
        pd.Aumentar(120);
           
...

Cabe mencionar que ya he instanciado objetos de tipo File y Path para conseguir la ruta absoluta, pero la verdad ya no requiero obtener la ruta absoluta porque ya la tengo en el ya mencionado objeto JTextFiedl, solo necesito "copiarla, transferirla" si ustedes quieren, a la variable de tipo BufferfedImage img y es todo de ahí en fuera mi aplicación trabajaria de maravilla. Una miembro de la comunidad Lorenzo31 me oriento bastante bien y lo agradezco enormemente pero aún no lo he conseguido. Gracias de antemano y quedo en espera  de sus valiosos comentarios.  :)
« Última modificación: 28 de Diciembre 2015, 20:51 por Alex Rodríguez »

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Buenas,

img = ImageIO.read(new File(Paths.get(JTextField.getText())));

Esta es la forma para cogerlo directamente, la clase necesaria es Paths no Path.

Ya dirás si es la idea que  llevabas, saludo.

mzamora60

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 17
    • Ver Perfil

Mi buen Lorenzo31 eres un Master Brother. Ya lo consegui y quiero decirte que tienes buen dominio de la materia. Muchas gracias y agrego el código por si a alguien necesita transferir un string de un JTextField a una variable de tipo BufferedImage.

Código: [Seleccionar]

try {
       
      Path direccion = Paths.get(txtimagen.getText());
      direccion = direccion.toAbsolutePath();
      img = ImageIO.read(new File((direccion.toString()))); //Aquí queda ingresada la ruta (String) de donde se localizara la imagen//
      pd = new zoom(img); 
      pd.repaint();
      lblimage.add(pd);       
                 
           
        } catch (IOException ex) {
           
            JOptionPane.showMessageDialog(null," Variable NO ha sido ingresada correctamente en la variable _image de tipo BufferedImage.");
       
    }       return;         
   



Saludos y gracias nuevamente mi buen amigo.   ;D

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
De nada, para eso estamos, ves como funcionaba la primera forma jeje. la que mande anoche es directa, pero falta un toString() al final, da igual, es mejor la que primero comprueba si es un Path correcto.

Pido pues cierren tus dos hilos al respecto de este tema los admins. Como solucionados ya.
Saludos compañero.

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Oído cocina... Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".