admin

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

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(new File("/user/mypc/thumbnail/crop/test.jpg"));

    * 이미지 중앙을 기준으로 가로 86,세로 81 크기의 thumbnail을 만든다.


   4) 90도 회전한 이미지 만들기

Thumbnails.of("/user/mypc/test.jpg").scale(0.25).rotate(90).toFile(new File("/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 



'2.Dev Tools > java' 카테고리의 다른 글

java command 창에서 classpath추가 실행하기 ..  (0) 2013.09.30

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

test.class  파일을 command창에서 classpath 추가하여 실행하고 싶을때

java -cp .:sample.jar test

java -cp .:* test

java -cp .:lib/sample.jar:my.jar test

중요사항 "."은 꼭있어야 함. 구분자는 윈도우의 경우 ";"이고 unix 계열은 ":" 임 

 

'2.Dev Tools > java' 카테고리의 다른 글

Thumbnailator Library를 활용하여 thumbnail image 만들기  (0) 2013.10.01