차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판이전 판다음 판 | 이전 판 | ||
tech:imagemagick [2014/01/18 23:01] – V_L | tech:imagemagick [2021/04/11 16:40] (현재) – [이미지 매직 (ImageMagick)] 108.162.215.11 | ||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | {{tag> | ||
+ | ======이미지 매직 (ImageMagick)====== | ||
+ | {{tech/ | ||
+ | 이미지 매직(ImageMagick)은 그림 변환, 수정 등의 많은 기능을 갖고 있는 무료 소프트웨어이다. | ||
+ | 명령어를 입력하는 방식으로 사용된다. | ||
+ | |||
+ | www.imagemagick.org | ||
+ | |||
+ | 이미지의 외곽을 자르거나, | ||
+ | |||
+ | dd | ||
+ | |||
+ | |||
+ | * convert : 기존 화일의 종류를 바꾸거나 편집하여 새로운 그림 화일을 만들 때 | ||
+ | * mogrify : convert와 달리 기존 화일을 수정할 때 (새로운 그림 화일을 만들지 않음.) | ||
+ | * composite : 여러 그림 화일을 겹쳐서 새로운 그림을 만들 때 | ||
+ | * montage : 여러 그림을 이어 붙여서 새로운 그림을 만들 때 | ||
+ | * import : 화면을 캡쳐할 때 | ||
+ | * identify : 그림 화일에 대한 정보를 알고 싶을 때 | ||
+ | * display : 그림을 화면으로 보이게 할 때 | ||
+ | * animate : 그림을 이어서 에니메이션처럼 보고 싶을 때 | ||
+ | |||
+ | |||
+ | ====libGD와 비교==== | ||
+ | |||
+ | php에 기본으로 포함되어 있는 그래픽 라이브러리인 libGD와 자주 비교된다. | ||
+ | |||
+ | ===장점=== | ||
+ | |||
+ | * 이미지 포맷과 상관없이 좋은 화질의 결과를 출력할 수 있다.( | ||
+ | * Exif 데이터가 소실되지 않는다. | ||
+ | * 메모리는 적게 사용하고, | ||
+ | |||
+ | ===단점=== | ||
+ | |||
+ | * 따로 설치해야 한다. | ||
+ | * shell_exe가 허용되지 않은 시스템에서는 사용이 불가하다. | ||
+ | * GD에 비해 한줄씩 프로세싱하는 관계로 속도가 떨어진다. | ||
+ | ====속도==== | ||
+ | |||
+ | GD는 더 빠르다. | ||
+ | 하지만 EXIF정보를 가져갈 수 없기 때문에 EXIF정보가 필요하면 별차이 없다 | ||
+ | |||
+ | 이미지 리사이징 테스트를 해보았다. | ||
+ | 240KB짜리 621x700 사이즈를 200x200으로 리사이징만 하는거다 | ||
+ | |||
+ | ^ ^1개^100개^ | ||
+ | | imagemagick|0.34741306304932|17.569828033447| | ||
+ | | GD|0.053716897964478|2.6152718067169| | ||
+ | |||
+ | |||
+ | GD가 확실히 빠르다. | ||
+ | 하지만 리사이징 퀄리티가 imagemagick보다 떨어진다는게 중론이다. | ||
+ | 근데 속도 차이가 너무 난다. | ||
+ | |||
+ | |||
+ | |||
+ | =====설치===== | ||
+ | |||
+ | 확인 | ||
+ | | ||
+ | | ||
+ | |||
+ | 우분투에서는 한번에 설치가 된다. | ||
+ | |||
+ | sudo apt-get install imagemagick | ||
+ | |||
+ | |||
+ | 확인 | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | =====예===== | ||
+ | |||
+ | ===파일포맷변경=== | ||
+ | |||
+ | convert image_org.gif | ||
+ | [설명] image_org.gif | ||
+ | |||
+ | convert image_org.png | ||
+ | [설명] image_org.png | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===확대, | ||
+ | |||
+ | convert image_org.jpg -resize 25%x25% -quality 100 image_out.jpg | ||
+ | [설명] image_org.jpg | ||
+ | |||
+ | convert image_org.jpg -resize 800x600 -quality 100 image_out.jpg | ||
+ | [설명] image_org.jpg | ||
+ | |||
+ | convert image_org.jpg -resize 800x600\! -quality 100 image_out.jpg | ||
+ | [설명] image_org.jpg | ||
+ | |||
+ | [설명] " | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===회전=== | ||
+ | |||
+ | 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도 회전하고 나머지 영역은 투명하게한다. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===좌우반전, | ||
+ | |||
+ | convert -flop image_org.jpg | ||
+ | [설명] image_org.jpg | ||
+ | |||
+ | convert -flip image_org.jpg | ||
+ | [설명] image_org.jpg | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===흑백, | ||
+ | |||
+ | convert image_org.jpg -colorspace gray image_out.jpg | ||
+ | [설명] image_org.jpg | ||
+ | |||
+ | convert image_org.jpg -sepia-tone 80% image_out.jpg | ||
+ | [설명] image_org.jpg | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===밝게, | ||
+ | |||
+ | convert image_org.jpg -sigmoidal-contrast 3,0% image_out.jpg | ||
+ | [설명] image_org.jpg | ||
+ | |||
+ | convert image_org.jpg -sigmoidal-contrast 3,100% image_out.jpg | ||
+ | [설명] image_org.jpg | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===자르기(crop)=== | ||
+ | |||
+ | convert image_org.jpg -crop 800x600+10+20 | ||
+ | [설명] image_org.jpg를 Left 10픽셀 Top 20픽셀 부터 800x600픽셀까지 | ||
+ | |||
+ | convert image_org.jpg -crop 800x600+10-30 | ||
+ | [설명] image_org.jpg를 Left 10픽셀 Top -30픽셀 부터 800x600픽셀까지 | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===캔버스생성=== | ||
+ | |||
+ | convert -size 800x600 xc:white image_out.jpg | ||
+ | [설명] 800x600픽셀인 흰색 image_out.jpg 이미지를 생성한다. | ||
+ | |||
+ | convert -size 800x600 xc:skyblue image_out.gif | ||
+ | [설명] 800x600픽셀인 하늘색 image_out.jpg 이미지를 생성한다. | ||
+ | |||
+ | convert -size 800x600 xc:none image_out.png | ||
+ | [설명] 800x600픽셀인 투명 image_out.png 이미지를 생성한다. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===글자이미지생성=== | ||
+ | |||
+ | convert -background white -fill black -font batang.ttf -pointsize 36 label:" | ||
+ | [설명] " | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===이미지합성=== | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | |||
+ | ^ 누구나 수정하실 수 있습니다. [[http:// | ||
+ | |||