imagemagick 은 jai 보다 향샹된 기능과 quality를 제공 합니다.
[win] 다운로드 : http://www.imagemagick.org/script/binary-releases.php#windows
[linux] 다운로드 및 설치
http://www.imagemagick.org/script/index.php
바로 다운로드 – ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.9-0
./configure –prefix=/usr/local/ImageMagick –with-quantum-depth=32 –with-jpeg=yes –with-png=yes –with-tiff=yes –with-zlib=yes –with-xml=yes –without-perl
make
make install
configure 의 옵션중 –with-quantum-depth=32 는 본인의 서버 사양이 좋지 않은 이상 웬만하면 생략하자. (CPU가 1개면서 메모리 4기가 이하)
설치 확인
/usr/local/ImagicMagick/bin/Magick-config –version
/usr/local/ImagicMagick/bin/convert -list format
패스등록
PATH=$PATH:/usr/local/ImageMagick/bin/
[주의사항]
libpng나 libjpeg 가 없으면 ImageMagicK를 설치해도 사용을 할 수 없고. 아래와 같은 에러가 난다.
convert: no decode delegate for this image format
그래서 두 개를 설치 해준다.
yum install libpng.x86_64
yum install libjpeg.x86_64
혹시나 해서
libjpeg-devel.x86_64와 libjpeg-static.x86_64도 설치하긴 했으나 별 상관 없어 보임.
그 다음에 ImageMagicK 를 설치한다.
파일을 다운받고 설치!
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
./configure –prefix=/설치할 경로
make
make install
[ 예제 : java source ]
/**
* @param loadFile - 원본 파일명
* @param saveFile - 썸네일 파일명
* @param maxWidth - 썸네일 파일 가로 크기
* @param maxHeight - 썸네일 파일 세로 크기
* @throws InterruptedException
*/
public static boolean ThumImageMagicResizeCreate(String loadFile, String saveFile, int maxWidth, int maxHeight, String autoScale) throws IOException{
String imageMagicDir = StringUtil.nvl(SystemProperties.getProperty("images.magic.contextBase"),"");
String autoSize = "";
if(!autoScale.equals("Y")) autoSize = "!";
File orgImgFile = new File(loadFile);
File thumImgFile = new File(saveFile);
ArrayList command = new ArrayList(10);
command.add(imageMagicDir+"/convert");
command.add("-resize");
command.add(maxWidth + "x" + maxHeight + autoSize);
command.add(orgImgFile.getAbsolutePath());
command.add(thumImgFile.getAbsolutePath());
//System.out.println("thumbnail command String " + command);
return exec((String[])command.toArray(new String[1]));
}
public static boolean exec(String[] command) throws IOException{
Process proc;
try{
//command 명령어 실행
proc = Runtime.getRuntime().exec(command);
}catch(IOException e){
System.out.println("IOException while trying to execute " +command);
return false;
}
int exitStatus;
while(true){
try {
exitStatus = proc.waitFor();
break;
} catch (java.lang.InterruptedException e) {
System.out.println("Interrupted: Ignoring and waiting");
}
}
if(exitStatus != 0){
System.out.println("Error executing command: " +exitStatus);
}
return (exitStatus == 0);
}
1. 파일포맷변경
convert image_org.gif image_out.jpg
[설명] image_org.gif 이미지를 image_out.jpg로 바꾼다.
convert image_org.png image_out.jpg
[설명] image_org.png 이미지를 image_out.jpg로 바꾼다.
2. 확대,축소,리사이즈
convert image_org.jpg -resize 25%x25% -quality 100 image_out.jpg
[설명] image_org.jpg 이미지를 1/4 축소한 image_out.jpg로 바꾼다.
convert image_org.jpg -resize 800×600 -quality 100 image_out.jpg
[설명] image_org.jpg 이미지를 800×600픽셀로 리사이즈 하지만 비율을 유지하며 큰사이즈 비율 기준으로 image_out.jpg를 생성한다.
convert image_org.jpg -resize 800×600! -quality 100 image_out.jpg
[설명] image_org.jpg 이미지를 800×600픽셀로 강제적으로 바꾸어 image_out.jpg를 생성한다.
[설명] “-quality 100″이란 옵션을 주면 품질을 최대한 좋게한다.
3. 회전
convert image_org.png -matte -background none -rotate 90 image_out.png
[설명] 이미지를 90도 회전하고 나머지 영역은 투명하게한다.
convert image_org.png -matte -background none -rotate -15 image_out.png
[설명] 이미지를 -15도 회전하고 나머지 영역은 투명하게한다.
4. 좌우반전,상하반전
convert -flop image_org.jpg image_out.jpg
[설명] image_org.jpg 이미지를 좌우반전시켜 image_out.jpg 이미지를 생성한다.
convert -flip image_org.jpg image_out.jpg
[설명] image_org.jpg 이미지를 상하반전시켜 image_out.jpg 이미지를 생성한다.
5. 흑백,갈색 효과
convert image_org.jpg -colorspace gray image_out.jpg
[설명] image_org.jpg 이미지를 흑백효과를 적용하고 image_out.jpg 이미지를 생성한다.
convert image_org.jpg -sepia-tone 80% image_out.jpg
[설명] image_org.jpg 이미지를 갈색효과를 적용하고 image_out.jpg 이미지를 생성한다.
6. 밝게,어둡게
convert image_org.jpg -sigmoidal-contrast 3,0% image_out.jpg
[설명] image_org.jpg 이미지를 밝게하여 image_out.jpg 이미지를 생성한다.
convert image_org.jpg -sigmoidal-contrast 3,100% image_out.jpg
[설명] image_org.jpg 이미지를 어둡게하여 image_out.jpg 이미지를 생성한다.
7. 자르기(crop)
convert image_org.jpg -crop 800×600+10+20 image_out.jpg
[설명] image_org.jpg를 Left 10픽셀 Top 20픽셀 부터 800×600픽셀까지 자르고 그 결과로 image_out.jpg 이미지를 생성한다.
convert image_org.jpg -crop 800×600+10-30 image_out.jpg
[설명] image_org.jpg를 Left 10픽셀 Top -30픽셀 부터 800×600픽셀까지 자르고 그 결과로 image_out.jpg 이미지를 생성한다.
8. 캔버스생성
convert -size 800×600 xc:white image_out.jpg
[설명] 800×600픽셀인 흰색 image_out.jpg 이미지를 생성한다.
convert -size 800×600 xc:skyblue image_out.gif
[설명] 800×600픽셀인 하늘색 image_out.jpg 이미지를 생성한다.
convert -size 800×600 xc:none image_out.png
[설명] 800×600픽셀인 투명 image_out.png 이미지를 생성한다.
9. 글자이미지생성
convert -background white -fill black -font batang.ttf -pointsize 36 label:”Testn한글” image_out.png
[설명] “Testn한글”이란 글자로 image_out.png 이미지를 생성한다. (이미지배경은 흰색, 글자색은 검정색, 폰트는 바탕, 폰트사이즈는 36pt)
10. 이미지합성
composite -dissolve 60 -geometry +50+100 image_temp.png image_org.jpg image_out.jpg
[설명] image_temp.png 이미지를 투명도 60%로 하여 image_org.jpg의 50,100 픽셀 좌표에 올려 합성후 image_out.jpg 이미지를 생성한다.
출처 : http://gmind.tistory.com/27
참조자료 :
http://blog.naver.com/seogi1004/110047542158 (별도 프로세스 사용)
http://www.imagemagick.org/Usage/thumbnails/ (이미지 편집 소프트웨어인 이미지매직 공식사이트)
http://blog.naver.com/genesung/130052565650 (이미지,문서,동영상 썸네일에대해 기술하고있는 문서)
http://gimmehide.tistory.com/38 (이미지매직 설치부터 활용까지 기술 For Java)
http://dev-world.springnote.com/pages/8962932(서버 환경에서 이미지매직사용)
