AWT/SWING
2015.08.04 / 23:18

Thumbnailator Library¸¦ È°¿ëÇÏ¿© thumbnail image ¸¸µé±â

ÄÚ¸£µµ¹Ù
Ãßõ ¼ö 420

Thumbnailator Library¸¦ È°¿ëÇÏ¿© thumbnail image ¸¸µé±â


jdk¿¡ ava.awt.Image,java.awt.Graphics2D,java.awt.image.BufferedImageµîÀ¸·Î ½æ³×ÀÏÀ» ±¸Çö ÇÒ ¼ö ÀÖÀ¸³ª Thumbnailator library¸¦ ÀÌ¿ëÇÏ¿© °£´ÜÈ÷ ThumbnailÀ» ¸¸µå´Â ¹æ¹ýÀ» ¼Ò°³ÇÏ°íÀÚ ÇÑ´Ù.

ȨÆäÀÌÁö: https://code.google.com/p/thumbnailator/

»ç¿ë¹ý

  1. ½æ³×ÀÏ ¸¸µé±â

     1) °¡·Î 80, ¼¼·Î 80ÀÎ À̹ÌÁö ¸¸µé±â

      thumbnails.of("/user/mypc/test.jpg").size(80,80).toFile("/user/mypc/thumbnail/test.jpg");

    

    2) ¿ø À̹ÌÁöÀÇ 25%ÀÎ thumbnail ¸¸µé±â

        thumbnails.of("/user/mypc/test.jpg").scale(0.25).toFile("/user/mypc/thumbnail/test.jpg");

    

    3) crop À̹ÌÁö ¸¸µé±â

        Thumbnails.of("/user/mypc/test.jpg").crop(Positions.CENTER).size(85, 81).toFile(newFile("/user/mypc/thumbnail/crop/test.jpg"));

    * À̹ÌÁö Áß¾ÓÀ» ±âÁØÀ¸·Î °¡·Î 86,¼¼·Î 81 Å©±âÀÇ thumbnailÀ» ¸¸µç´Ù.


   4) 90µµ ȸÀüÇÑ À̹ÌÁö ¸¸µé±â

Thumbnails.of("/user/mypc/test.jpg").scale(0.25).rotate(90).toFile(newFile("/user/mypc/thumbnail/r_test.jpg"));


   5) watermark ³Ö±â

      BufferedImage originalImage = ImageIO.read(new File("original.jpg"));

        BufferedImage watermarkImage = ImageIO.read(new File("watermark.png"));

        BufferedImage thumbnail = Thumbnails.of(originalImage).size(200, 200).watermark(Positions.BOTTOM_RIGHT, watermarkImage, 0.5f).asBufferedImage();


  ¡Ø½ÇÇà½Ã Heap Memory ºÎÁ·¿¡·¯ ¹ß»ý½Ã ÇØ°á ¹æ¹ý

¾Æ·¡¿Í °°ÀÌ heap Memory ºÎÁ·¿¡·¯°¡ ¹ß»ýÇÑ´Ù¸é ¸Þ·Î¸®¸¦ ´Ã·Á¼­ ÇØ°á ÇÒ ¼ö ÀÖ´Ù.

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

at java.awt.image.DataBufferByte.<init>(DataBufferByte.java:59)

at java.awt.image.ComponentSampleModel.createDataBuffer(ComponentSampleModel.java:397)

at java.awt.image.Raster.createWritableRaster(Raster.java:935)

at javax.imageio.ImageTypeSpecifier.createBufferedImage(ImageTypeSpecifier.java:1056)

at javax.imageio.ImageReader.getDestination(ImageReader.java:2879)

at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:1046)

at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:1014)

at javax.imageio.ImageReader.read(ImageReader.java:923)

at net.coobird.thumbnailator.tasks.io.FileImageSource.read(Unknown Source)

at net.coobird.thumbnailator.tasks.SourceSinkThumbnailTask.read(Unknown Source)

at net.coobird.thumbnailator.Thumbnailator.createThumbnail(Unknown Source)

at net.coobird.thumbnailator.Thumbnails$Builder.toFile(Unknown Source)

at convertCrop.Proc(convertCrop.java:40)

at convertCrop.main(convertCrop.java:19)



Eclipse¿¡¼­ ¼³Á¤¹ý

   (1) Run > Run Configurations.. OR Debug Configurations...À» ¼±ÅÃÇÕ´Ï´Ù.



  (2) Arguments ÅÇ¿¡¼­ VM arguments¿¡ ¾Æ·¡ÀÇ parameter¸¦ Ãß°¡ ÇÕ´Ï´Ù.

     -XX:MaxPermSize=96m -Xms128m -Xmx512m




´Ù½Ã ½ÇÇàÇϸé Àß µÇ´Â°ÍÀ» È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù.


(2) Command â¿¡¼­ ½ÇÇà 

    java -XX:MaxPermSize=96m -Xms128m -Xmx512m -cp .:thumbnailor.jar myThumnailMake