Thumbnailator Library¸¦ È°¿ëÇÏ¿© thumbnail image ¸¸µé±â
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