Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: mzamora60 en 27 de Diciembre 2015, 16:54
-
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:
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. :)
-
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.
-
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.
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
-
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.
-
Oído cocina... Saludos