Ruby on Rails 2.1-RMagick 가이드
Rails는 인기 있고 안정적인 C 라이브러리 인 ImageMagick 및 GraphicsMagick에 대한 바인딩을 제공합니다 . RMagick 라이브러리는 ImageMagick 및 GraphicsMagick에 대해 동일한 인터페이스를 제공하므로 어떤 것을 사용하는지는 중요하지 않습니다.
당신은 얻을 수 있습니다 RMagickUnix에 rmagick gen을, Windows에 rmagick-win32 gem을 설치합니다. 다음과 같이 Unix 시스템에 설치해 보겠습니다.
$ gem install rmagick
그만큼 RMagick모듈은 Magick :: Image 클래스와 함께 제공되며 네 가지 방법으로 이미지 크기를 조정할 수 있습니다.
- 크기 조정 (너비, 높이)
- 스케일 (너비, 높이)
- 샘플 (너비, 높이)
- 썸네일 (너비, 높이)
이러한 모든 메서드는 원하는 축소판의 너비와 높이 (픽셀 단위)에 해당하는 한 쌍의 정수 값을 허용합니다.
예
다음은 resize () 메서드를 사용하여 이미지 크기를 조정 하는 예제입니다 . 파일이 필요합니다.tmp.jpg 가로 100 픽셀, 세로 100 픽셀의 썸네일을 만듭니다.
require 'rubygems'
require 'RMagick'
class ImageController < ApplicationController
def createThubnail
width, height = 100, 100
img = Magick::Image.read('tmp.jpg').first
thumb = img.resize(width, height)
# If you want to save this image use following
# thumb.write("mythumbnail.jpg")
# otherwise send it to the browser as follows
send_data(thumb.to_blob, :disposition => 'inline', :type => 'image/jpg')
end
end
다음은 썸네일을 만드는 단계입니다.
여기서 Image.read 클래스 메서드 는 이미지 파일 이름을 인수로 받고 Image 객체의 배열을 반환합니다. 그 배열의 첫 번째 요소는 분명히 우리의 tmp.jpg 이미지입니다.
다음으로 메소드를 호출합니다. resize 원하는 인수로 축소판을 만듭니다.
마지막으로이 이미지를 브라우저로 보냅니다. thumb.write ( "mythumbnail.jpg") 메서드 를 사용하여이 이미지를 컴퓨터에 로컬로 저장할 수도 있습니다 .
이미지 형식 변환
이미지 파일을 한 형식에서 다른 형식으로 변환하는 것은 매우 쉽습니다. RMagick매우 현명하게 처리합니다. 파일을 읽고 다른 확장자로 쓸 수 있습니다.
예
다음 예제는 JPEG 파일을 GIF 파일로 변환합니다.
require 'rubygems'
require 'RMagick'
class ImageController < ApplicationController
def changeFormat
img = Magick::Image.read('tmp.jpg').first
# If you want to save this image use following
# img.write("mythumbnail.gif")
# otherwise send it to the browser as follows
send_data(img.to_blob, :disposition => 'inline', :type => 'image/gif')
end
end
다음과 같이 요구 사항에 따라 이미지를 형식으로 변경할 수 있습니다.
img = Magick::Image.read("tmp.png").first
img.write("tmp.jpg") # Converts into JPEG
img.write("tmp.gif") # Converts into GIF
img.write("JPG:tmp") # Converts into JPEG
img.write("GIF:tmp") # Converts into GIF