standaloneddsconverter.java

来自「world wind java sdk 源码」· Java 代码 · 共 134 行

JAVA
134
字号
/*Copyright (C) 2001, 2006 United States Governmentas represented by the Administrator of theNational Aeronautics and Space Administration.All Rights Reserved.*/package gov.nasa.worldwind.formats.dds;import gov.nasa.worldwind.util.*;import javax.swing.*;import java.io.*;import java.nio.*;/** * @author Tom Gaskins * @version $Id: StandaloneDDSConverter.java 8939 2009-02-21 00:27:52Z dcollins $ */public class StandaloneDDSConverter{    private static void convertToDDS(File file) throws IOException    {        if (file == null)        {            String message = Logging.getMessage("nullValue.FileIsNull");            Logging.logger().severe(message);            throw new IllegalArgumentException(message);        }        if (!file.exists() || !file.canRead())        {            String message = Logging.getMessage("DDSConverter.NoFileOrNoPermission");            Logging.logger().severe(message);            throw new IllegalArgumentException(message);        }        if (file.isDirectory())            convertDirectory(file, new String[]{".jpg", "png"});        else            convertFile(file);    }    private static void convertDirectory(File dir, final String[] suffixes)    {        System.out.printf("===== Converting Directory %s\n", dir.getPath());        File[] files = dir.listFiles(new FileFilter()        {            public boolean accept(File file)            {                for (String suffix : suffixes)                {                    if (file.getPath().endsWith(suffix))                        return true;                }                return false;            }        });        if (files != null)        {            for (File file : files)            {                try                {                    convertFile(file);                }                catch (Exception e)                {                    System.out.printf("Exception converting %s, skipping file\n", file.getPath());                    e.printStackTrace();                }            }        }        File[] directories = dir.listFiles(new FileFilter()        {            public boolean accept(File file)            {                return file.isDirectory();            }        });        if (directories != null)        {            for (File directory : directories)            {                convertDirectory(directory, suffixes);            }        }    }    private static void convertFile(File file) throws IOException    {        System.out.printf("Converting File %s\n", file.getPath());        ByteBuffer buffer = DDSCompressor.compressImageFile(file);        File newFile = new File(WWIO.replaceSuffix(file.getPath(), ".dds"));        WWIO.saveBuffer(buffer, newFile);    }    public static void main(String[] args)    {        JFileChooser fileChooser = new JFileChooser();        fileChooser.setAcceptAllFileFilterUsed(true);        fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);        fileChooser.setMultiSelectionEnabled(true);                int status = fileChooser.showOpenDialog(null);        if (status != JFileChooser.APPROVE_OPTION)            return;                File[] files = fileChooser.getSelectedFiles();        if (files == null)        {            System.out.println("No files selected");            return;        }        for (File file : files)        {            try            {                convertToDDS(file);            }            catch (IOException e)            {                System.out.printf("Exception converting input file %s, skipping file\n", file.getPath());                e.printStackTrace();            }        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?