๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Java

Disk์— ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ์ด๋ฏธ์ง€ Resize ํ•˜๊ธฐ

by ์•„๋ฆฌ๊ฐ€๋˜๐Ÿ™‚ 2023. 3. 10.

java-image-scaling์„ ํ†ตํ•ด ๋ณ„๋„์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€ ์—†์ด ์ด๋ฏธ์ง€ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ ˆํผ๋Ÿฐ์Šค๋“ค์„ ์‚ดํŽด๋ณด๋ฉด ๋ณดํ†ต ์•„๋ž˜์™€ ๊ฐ™์€ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค.

  1. Disk์— ์›๋ณธ์„ ์ €์žฅํ•œ๋‹ค.
  2. Resize ํ•œ๋‹ค. (์›๋ณธ๊ณผ Resize ํŒŒ์ผ ๋‘๊ฐœ๊ฐ€ ์กด์žฌํ•˜๋Š” ์ƒํƒœ)
  3. (์›๋ณธ์„ ์‚ญ์ œํ•œ๋‹ค)
    ์˜ ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„์€

  1. ์›๋ณธ ํŒŒ์ผ์€ ์ €์žฅํ•˜๊ณ  ์‹ถ์ง€ ์•Š์•„์š”.
  2. ์ €์žฅํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๊ณ  ์‹ถ์ง€ ์•Š์•„์š”.

ํŒŒ์ผ์„ Image IO๋กœ ์ฝ๊ณ , ์“ฐ๊ธฐ๋งŒ ํ•˜์—ฌ
๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ์•ž์œผ๋กœ ์ž์ฃผ ์จ๋จน์„ ๋“ฏํ•ฉ๋‹ˆ๋‹ค.

public static void resize(File originFile, File resizeFile) throws IOException {

    BufferedImage origin = ImageIO.read(originFile.getInputStream());

    int originWidth = origin.getWidth();
    int originHeight = origin.getHeight();

    int newWidth = 1000;
    int newHeight = originHeight;

    if (originWidth > newWidth) {
        // ๊ธฐ์กด ์ด๋ฏธ์ง€ ๋น„์œจ ์œ ์ง€
        newHeight = (originHeight * newWidth) / originWidth;
    } else {
        newWidth = originWidth;
    }

    BufferedImage resizedImage = new BufferedImage(newWidth, newHeight, BufferedImage.SCALE_SMOOTH);
    Graphics2D graphics2D = resizedImage.createGraphics();
    graphics2D.drawImage(originFile, 0, 0, newWidth, newHeight, null);
    graphics2D.dispose();

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ImageIO.write(resizedImage, "jpg", resizeFile);
    baos.flush();

}

'Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Java Enum ํ™œ์šฉํ•˜๊ธฐ  (0) 2023.05.30

๋Œ“๊ธ€