Ruby 애플리케이션에서 모든 종류의 이미지로 작업하는 경우 어떤 식으로든 이미지를 변경하고 싶을 가능성이 큽니다.
사용자를 위해 공간을 절약하고 더 빠른 다운로드를 위해 크기를 조정하는 것과 같습니다.
하지만 어떻게 할 수 있죠?
MiniMagick은 당신을 도울 수 있는 보석입니다.
ImageMagick 프로그램과 Ruby 코드 간의 인터페이스입니다.
이미지에 모든 종류의 변형을 적용하여 필요에 맞게 사용자 지정할 수 있습니다!
첫 번째 :
ImageMagick을 설치해야 합니다. 운영 체제 패키지 관리자를 사용하거나 프로젝트 웹사이트에서 설치 프로그램을 다운로드합니다.
그런 다음 mini_magick
으로 일반 Ruby 메서드를 사용하여 이미지를 변경할 수 있습니다.
몇 가지 예를 살펴보겠습니다!
이미지 열기
두 가지 방법으로 이미지를 열 수 있습니다.
MiniMagick::Image.open
=> 이미지의 복사본을 만듭니다.MiniMagick::Image.new
=> 원본 이미지 변경
open
이 메서드는 파일 이름과 URL을 모두 사용하므로 웹에서 직접 이미지를 가져올 수 있습니다.
이 이미지는 무료 사진 공유 사이트인 Unsplash의 이미지를 사용하겠습니다.
다음과 같이 이미지를 로드할 수 있습니다. :
require 'mini_magick' image = MiniMagick::Image.open( "https://images.unsplash.com/photo-1516295615676-7ae4303c1c63" )
이제 이미지가 로드되었으므로 크기, 치수, 형식 등과 같은 정보를 얻을 수 있습니다.
방법은 다음과 같습니다. :
image.dimensions # [3963, 5944] image.type # "JPEG" image.human_size # "20.7663MB"
이것은 거대한 이미지이므로 크기를 조정하십시오!
또한 수직이 아닌 수평이 되도록 회전하고 싶습니다.
크기 조정 및 회전
다음과 같이 이미지 크기를 조정할 수 있습니다.
image.resize "500x500"
이렇게 하면 정확한 치수를 알 수 있지만 가로 세로 비율을 그대로 유지하면서 이미지의 비율을 백분율로 조정하려면…
할 수 있습니다 :
image.resize "25%"
이것은 25% 크기 조정이 아니라 원래 크기의 25% 크기 조정입니다.
지금 :
파일을 다시 디스크에 기록하여 변경 사항을 적용해야 합니다.
방법은 다음과 같습니다. :
image.write("/tmp/new_image.jpg")
직접 수정하기 위해 이미지를 연 경우(new
사용) , open
대신 ) 그러면 write
를 사용할 필요가 없습니다. .
이미지 자르는 방법
이미지의 일부를 잘라 원하지 않는 부분을 제거하고 더 작게 만들 수 있습니다.
구문은 이쪽 :
<width> x <height> +<xoffset> +<yoffset>
예를 들어 이미지의 아래쪽 절반을 자르려면:
image.crop "100%x50%+0+0"
이미지의 절반을 세로로 자르는 경우:
image.crop "50%x100%+0+0"
원하는 작물을 찾을 때까지 이 숫자를 가지고 놀 수 있습니다.
둥근 이미지 만들기
이미지를 둥글게 만들려면 일련의 방법을 결합해야 합니다.
좋아요 :
MiniMagick::Tool::Convert.new do |img| img.size '3900x5000' img << 'xc:transparent' img.fill "apple.jpg" img.draw "translate 2000, 2500 circle 0,0 2000,0" img.trim img << 'circle.png' end
이렇게 하면 반올림하려는 이미지의 크기여야 하는 지정된 크기의 빈 캔버스가 생성됩니다.
그럼 :
이 캔버스는 이미지로 채워지고 가운데에 원이 그려지고 원 주변의 모든 것이 제거됩니다.
마지막으로 이미지는 "circle.png"로 저장됩니다.
translate 2000, 2500
캔버스 중앙의 좌표입니다.
2000
동안 circle 0,0 2000,0
에서 는 원의 반지름입니다.
MiniMagick으로 테두리를 추가하는 방법
mini_magick
으로 테두리를 추가하는 것은 세상에서 가장 쉬운 일입니다. .
예 :
img.border 10
다음과 같이 색상을 설정할 수 있습니다.
img.bordercolor("white")
write
을 잊지 마세요. open
을 사용하는 경우 변경 사항 new
대신 .
이미지 최적화
이미지를 작게 만드는 것 이상으로 최적화할 수 있습니다.
예를 들어 strip
을 사용할 수 있습니다. mini_magick
의 메소드 메타데이터를 제거합니다.
좋아요 :
image.strip
추가 최적화를 원하면 image_optim
과 같은 gem을 사용할 수 있습니다. .
좋아요 :
require 'image_optim' image_optim.optimize_image!('orange.jpg')
동영상 튜토리얼 보기
요약
mini_magick
을 사용하여 이미지를 변경하는 방법(회전, 크기 조정, 자르기)을 배웠습니다. 루비 보석!
읽어주셔서 감사합니다.