Computer >> 컴퓨터 >  >> 프로그램 작성 >> Ruby

MiniMagick Gem:Ruby를 사용하여 이미지를 변환하는 방법

Ruby 애플리케이션에서 모든 종류의 이미지로 작업하는 경우 어떤 식으로든 이미지를 변경하고 싶을 가능성이 큽니다.

사용자를 위해 공간을 절약하고 더 빠른 다운로드를 위해 크기를 조정하는 것과 같습니다.

하지만 어떻게 할 수 있죠?

MiniMagick은 당신을 도울 수 있는 보석입니다.

ImageMagick 프로그램과 Ruby 코드 간의 인터페이스입니다.

이미지에 모든 종류의 변형을 적용하여 필요에 맞게 사용자 지정할 수 있습니다!

첫 번째 :

ImageMagick을 설치해야 합니다. 운영 체제 패키지 관리자를 사용하거나 프로젝트 웹사이트에서 설치 프로그램을 다운로드합니다.

그런 다음 mini_magick으로 일반 Ruby 메서드를 사용하여 이미지를 변경할 수 있습니다.

몇 가지 예를 살펴보겠습니다!

이미지 열기

두 가지 방법으로 이미지를 열 수 있습니다.

  1. MiniMagick::Image.open => 이미지의 복사본을 만듭니다.
  2. MiniMagick::Image.new => 원본 이미지 변경

open 이 메서드는 파일 이름과 URL을 모두 사용하므로 웹에서 직접 이미지를 가져올 수 있습니다.

이 이미지는 무료 사진 공유 사이트인 Unsplash의 이미지를 사용하겠습니다.

MiniMagick Gem:Ruby를 사용하여 이미지를 변환하는 방법

다음과 같이 이미지를 로드할 수 있습니다. :

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을 사용하여 이미지를 변경하는 방법(회전, 크기 조정, 자르기)을 배웠습니다. 루비 보석!

읽어주셔서 감사합니다.