잡탕1 - IT2012. 9. 16. 18:03

선잡설

만들고자 하는것이 갤러리 홈페이지다 보니 이미지의 썸네일 이미지도 쿼리티가 무척이나 중요하다.

php로 구현된것은 제로보드등 여러곳에서 볼 수 있지만 java 로 된건 별로 보지 못했다.





본잡설

1. JPEGImageEncoder 를 이용한 리사이즈

public static void createThumbnail(String soruce, String target, int targetW) throws Exception 

    Image imgSource = new ImageIcon(soruce).getImage(); 


    int oldW = imgSource.getWidth(null); 

    int oldH = imgSource.getHeight(null); 


    int newW = targetW; 

    int newH = (targetW * oldH) / oldW; 


    //Image imgTarget = imgSource.getScaledInstance(newW, newH, Image.SCALE_AREA_AVERAGING); 

Image imgTarget = imgSource.getScaledInstance(newW, newH, Image.SCALE_SMOOTH); 

    

    int pixels[] = new int[newW * newH]; 


    PixelGrabber pg = new PixelGrabber(imgTarget, 0, 0, newW, newH, pixels, 0, newW); 

    pg.grabPixels(); 


    BufferedImage bi = new BufferedImage(newW, newH, BufferedImage.TYPE_INT_RGB); 

    bi.setRGB(0, 0, newW, newH, pixels, 0, newW); 


    FileOutputStream fos = new FileOutputStream(target); 


    JPEGImageEncoder jpeg = JPEGCodec.createJPEGEncoder(fos); 


    JPEGEncodeParam jep = jpeg.getDefaultJPEGEncodeParam(bi); 

    jep.setQuality(1, true); 


    jpeg.encode(bi, jep); 


    fos.close(); 

}

(출처:http://www.ibm.com/developerworks/kr/library/j-jspdwj/index.html#N1015A 

        http://blog.naver.com/PostView.nhn?blogId=j79sw&logNo=110037089984&redirect=Dlog&widgetTypeCall=true )


음.. 나름 깔끔하다. JAI 로 한방 리사이즈보단 이미지가 괜찮다.

중간에 주석이 있는 부분 getScaledInstance() 메소드의 마지막 파라메터로 쿼리티를 조정할 수 있다.

다 해본결과 SCALE_SMOOTH 가 가장 좋다.

리사이즈 본이 원래 그렇지만 섬네일 이미지가 약간 블러를 먹은 듯 선예도가 떨어진다.




후잡설

방법들은 알게되는대로 계속 올리겠다.

Posted by pearl짓거리전문
잡탕1 - IT2012. 9. 1. 09:21

선잡설

오랜만에 쌓여 있는 JSP 책들을 보며 다시 공부해보고 싶은 마음이 들었다

절대 책산게 아까워서 그런게 아니다. 흠.

Java 감도 슬슬 없어지는 듯하고, 홈페이지도 개편할 때가 된 듯 하다





본잡설

내 PC에 설치된 버전들

JDK 1.6.0_32 (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Resin 4.0.30 (http://www.caucho.com/download/)

Eclipse Java EE IDE for Web Developers (JUNO) (http://www.eclipse.org/downloads/)


- 현 시점에서 Java 버전 이외에는 최신버전들이며, Resin 은 pro 버전이 아니다

- 각 링크는 해당 프로그램 다운로드 페이지므로 알아서 다운로드 하기 바란다

- Resin 은 zip 버전 받으면 된다



**

이 세팅은 JSP 개발자용이며 WAS 서버라든가 호스팅에는 적합하지 않다

(그럴려면 Resin 세부설정이 필요하다)

eclipse 에서 코딩하고 브라우저로 확인하는 정도 세팅이라 보면 되겠다



**

왜 Resin인가?

그냥 별다른 이유 없다. 모든 JSP 책에 tomcat 으로 되어 있는게 꼴뵈기 싫어서?

WAS 퍼포먼스에서 보면 개발자 PC의 성능이 더 좌우될거고 웹서버를 돌리지 않는 이상

크게 차이가 없을 듯 하다

마이너 지향인 필자의 성향이 Resin을 선택한 이유다



1. 환경설정

- Java 는 JAVA_HOME 시스템변수 잡고 path 에 bin 등록하고 CLASS_PATH 잡는다

(이 세팅은 너무도 많으니 알아서 하시길)

- Resin 은 RESIN_HOME 으로 설치 경로를 시스템 변수로 잡아준다


2. Eclipse 에서 서버 세팅



Window - Preferences - Server - Runtime Environments 에 Resin 등록된 모습


- 스샷처럼 물론 Resin 이 등록되어 있지 않다. 아무것도 없다 Add 를 누르자

New Server 선택창에 Resin 은 없다. 가장 많이 쓰는 Tomcat 은 버전별로 있고 다른 서버들도 보일 것이다

하지만 Resin 은 따로 등록해야 한다.

오른쪽 위에 있는 'Download additional server adapters' 를 누른다

Install new Extension 에 목록이 주르륵 나온다

Resin 은 하나 있으니 선택하여 설치하면 된다

그러면 Eclipse 재실행 해야 완료 된다고 나올것이다. 다시시작 하자.



- 재시작 후, 다시 Window - Preferences - Server - Runtime Environments 에 가서 Add 를 누른다

가장 마지막에 Resin 이 있을 것이고 선택하여 등록한다



특별한 세팅은 할게 없고 설치경로 맞춰주면 된다

JRE는 default 이길래 설치된 버전으로 골라주라고 하던데 그냥해도 무방할 듯 하다



- 이제 Project Exploler 에 Servers 가 등록되고 펼쳐보면 Resin 이 있을 것이다

eclipse 화면 하단 Servers 에도 Resin이 등록되어 있을 것이다


- JSP 든 Servlet 이든 하나 만들어서 테스트 해보자



프로잭트 만들기 할때, Target runtime 에 Resin 4.0 으로 되어있으면 된다





후잡설

본래 이런글은 스샷도 없이 대충 쓰지만 이번은 참 정성들여(?) 썼다

이 설정은 windows 에서 했지만 MAC 에서도 사용하고 있으므로 그대로 참고하면 될 듯 하다

기타 틀린점이나 궁금한건 리플로 남겨주시면 시간 날때 피드백 한다





Posted by pearl짓거리전문