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

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

 IOS Simulator에서 카메라가 지원되지 않는다. 그래서 사진 점부 테스트를 하려면 사진을 사진을 IOS Simulator에 넣어야 하는데 방법을 몰라 삽질을 했는데 알고보니 간단합니다.

1. IOS Simulator에서 Safari or App을 실행합니다.




2. Finder에서 이미지를 선택 후 클릭하여 Safari 브라우져로 드래그앤 드랍으로 추가 합니다.


3. Save To Camera Roll 을 클릭하여 저장합니다

 4. App을 클릭하여 테스트 합니다.

5. 이미지 첨부를 클릭함.