Load and display all the images from a folder

前端 未结 3 1083
广开言路
广开言路 2020-12-08 03:20

I want to read all the images in a folder using Java.

When: I press a button in the Java application,
It should:

相关标签:
3条回答
  • 2020-12-08 03:53
    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 讨论(0)
  • 2020-12-08 04:01

    Untested because not on a machine with a JDK installed, so bear with me, that's all typed-in "as-is", but should get you started (expect a rush of downvotes...)

    Loading all the Images from a Folder

    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
                    }
                }
            }
        }
    }
    

    APIs Used

    This is relatively simple to do and uses only standard JDK-packaged classes:

    • File
    • FilenameFilter
    • BufferedImage
    • ImageIO

    These sessions of the Java Tutorial might help you as well:

    • Reading/Loading an Image
    • How to Use Icons
    • How to Use File Choosers

    Possible Enhancements

    • Use Apache Commons FilenameUtils to extract files' extensions
    • Detect files based on actual mime-types or content, not based on extensions
    • I leave UI code up to you. As I'm unaware if this is homework or not, I don't want to provide a full solution. But to continue:
      • Look at a FileChooser to select the folder.
      • I assume you already know how to make frames/windows/dialogs.
      • Read the Java Tutorial How to Use Icons sections, which teaches you how to display and label them.
    • I left out some issues to be dealt with:
      • Exception handling
      • Folders with evil endigs (say you have a folder "TryMeIAmEvil.png")

    By combining all of the above, it's pretty easy to do.

    0 讨论(0)
  • 2020-12-08 04:02

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

        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 讨论(0)
提交回复
热议问题