2012-07-02 19 views
13

Quiero leer todas las imágenes en una carpeta usando Java.Cargar y mostrar todas las imágenes de una carpeta

Cuando: se presiona un botón en la aplicación Java,
Se debe:

  • pedir la trayectoria del directorio en una ventana emergente,
  • luego carga todas las imágenes de este directorio,
  • luego muestra sus nombres, tipos de dimensión y tamaño.

¿Cómo proceder?

Tengo el código para leer la imagen y también para todas las imágenes de la carpeta, pero ¿cómo se puede hacer lo que dije anteriormente?

¡Cualquier sugerencia o ayuda es bienvenida! Por favor, proporciona enlaces de referencia!

+11

mostrarnos lo que tienes, y nos dicen dónde se queda pegada * * exactamente si espera ayuda en esto. [preguntar] – Adam

+1

Dado que tu pregunta es bastante genérica, puedo adivinar que esto es lo que buscas: http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html Esta es una forma de hacerlo eso. – biziclop

+1

@kundanraj: si esto es tarea, por favor marque como tal. – haylem

Respuesta

38

No probado porque no en una máquina con un JDK instalado, así que tengan paciencia conmigo, eso es todo lo escrito en "tal cual", pero servirán para iniciar (se espera una oleada de downvotes ...)

Cargando todas las imágenes de una carpeta

import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.FilenameFilter; 
import java.io.IOException; 
import javax.imageio.ImageIO; 

public class Test { 

    // File representing the folder that you select using a FileChooser 
    static final File dir = new File("PATH_TO_YOUR_DIRECTORY"); 

    // array of supported extensions (use a List if you prefer) 
    static final String[] EXTENSIONS = new String[]{ 
     "gif", "png", "bmp" // and other formats you need 
    }; 
    // filter to identify images based on their extensions 
    static final FilenameFilter IMAGE_FILTER = new FilenameFilter() { 

     @Override 
     public boolean accept(final File dir, final String name) { 
      for (final String ext : EXTENSIONS) { 
       if (name.endsWith("." + ext)) { 
        return (true); 
       } 
      } 
      return (false); 
     } 
    }; 

    public static void main(String[] args) { 

     if (dir.isDirectory()) { // make sure it's a directory 
      for (final File f : dir.listFiles(IMAGE_FILTER)) { 
       BufferedImage img = null; 

       try { 
        img = ImageIO.read(f); 

        // you probably want something more involved here 
        // to display in your UI 
        System.out.println("image: " + f.getName()); 
        System.out.println(" width : " + img.getWidth()); 
        System.out.println(" height: " + img.getHeight()); 
        System.out.println(" size : " + f.length()); 
       } catch (final IOException e) { 
        // handle errors here 
       } 
      } 
     } 
    } 
} 

API utilizadas

Esto es relativamente simple de hacer y sólo utiliza las clases estándar envasados-JDK:

Estas sesiones de la Java Tutorial podrían ayudar también:

Mejoras posibles

  • Use Apache Commons FilenameUtils para extraer las extensiones de los archivos de los
  • Detectar archivos basado en tipos MIME o contenidos reales, no se basa en extensiones
  • Te dejo el código de UI. Como no sé si esto es tarea o no, no quiero ofrecer una solución completa. Pero para continuar:
    • Mire en FileChooser para seleccionar la carpeta.
    • Supongo que ya sabe cómo hacer marcos/ventanas/cuadros de diálogo.
    • Lea las secciones Java TutorialHow to Use Icons, que le muestran cómo mostrarlas y etiquetarlas.
  • omití algunas cuestiones a tratar:
    • manejo de excepciones
    • carpetas con endigs malos (supongamos que tiene una carpeta "TryMeIAmEvil.png")

Al combinar todo lo anterior, es bastante fácil de hacer.

+1

todo fue mejor de lo esperado? ;) – Adam

+0

@codesparkle: Yo no, tal vez ese código realmente funciona? :) Por lo general, cuando publicas algo que falla, te destruyen rápidamente por el código malicioso enviado. O quizás todavía no es hora punta. Además, a medida que avanzaba me di cuenta de que el OP probablemente estaba pidiendo tarea, así que no continué. – haylem

+4

+1 lo hiciste bien por tipearlo sin un IDE :) –

0

javaxt.io.Directory directory = new javaxt.io.Directory ("C: \ Users \ Public \ Pictures \ Sample Pictures"); directory.getFiles(); archivos javaxt.io.File [];

java.io.FileFilter filter = file -> !file.isHidden() && (file.isDirectory() || (file.getName().endsWith(".jpg"))); 
    files = directory.getFiles(filter, true); 
    System.out.println(Arrays.toString(files)); 
0
step 1=first of all make a folder out of webapps 
step2= write code to uploading a image in ur folder 
step3=write a code to display a image in ur respective jsp,html,jframe what u want 

this is folder=(images) 
reading image for folder' 
Image image = null; 
     try { 
      File sourceimage = new File("D:\\images\\slide4.jpg"); 
       image = ImageIO.read(sourceimage); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     }  
    } 
+0

¿Al menos puede compartir un código válido? –

+0

No hay problema, voy a compartir mi código completo, no se preocupe –

Cuestiones relacionadas