java

URL의 이미지 파일 분할저장

기계새 2019. 10. 10. 12:06


    private static List<String> getFilePathListByImage(String url, String localPath, String extension) throws IOException {
        BufferedImage bi = ImageIO.read(url);
        int totalHeight = bi.getHeight();
        int splitSize = (totalHeight / SPLIT_RULE_HEIGHT) + 1;
        List<StringsplitFileNmList = new ArrayList<>();
        for (int i = 0; i < splitSize; i++) {
            String splitFileNm = "fileName_" + i;
            File outputFile = new File(localPath + splitFileNm + "." + extension);
            int ySize = SPLIT_RULE_HEIGHT * i;

            int height = SPLIT_RULE_HEIGHT;
            if ((i + 1) == splitSize) {
                height = totalHeight % SPLIT_RULE_HEIGHT;
            }
            if (height == 0) {
                continue;
            }

            BufferedImage subImage = bi.getSubimage(0, ySize, bi.getWidth(), height);

            ImageIO.write(subImage, extension, outputFile);
            splitFileNmList.add(splitFileNm);
        }
        return splitFileNmList;
    }