튜토리얼 제13장 사용자의 마이크로 포스트 - 이미지의 리사이즈
4012 단어 Rails 튜토리얼초보자RailsRails5
이미지의 자동 크기 조정이 필요한 이유
파일 사이즈에 대한 밸리데이션은 Rails 자습서 13장 사용자 마이크로포스트 - 이미지 확인 로 구현할 수 있었습니다. 그러나 이미지 크기(세로 및 가로 길이)에 대한 제한은 현재 존재하지 않습니다. 따라서 너무 큰 이미지 크기(가로 2048픽셀 등)의 파일이 업로드되면 아래와 같이 레이아웃이 손상됩니다.
ImageMagick 설정
Rails 튜토리얼을 진행하고 있는 개발 환경에서는 ImageMagick이 반드시 설치되어 있는 것은 아닙니다. 또한 ImageMagick 자체는 gem이 아니므로 Bundler의 관리 대상이 아니며 개별 환경에서 별도로 설치해야합니다. homebrew라든지 dnf라든지로 인스톨 하는 녀석이군요.
Docker의 루비 이미지는 데비안을 기반으로 구성되어 있습니다. 따라서 ImageMagick을 설치하는 명령은 다음과 같습니다.
# apt install imagemagick -y
yum 의 패키지명 (Rails 튜토리얼 본문에 기술되고 있던 것입니다)과는 달리, imagemagick
는 모두 소문자가 됩니다.
실제로 이미지 크기를 조정하도록 이미지 업로더 수정
이번은, 「화상의 종횡 어느 쪽인가가 400px를 넘고 있었을 경우, 적절한 사이즈로 축소한다. 단, 화상을 늘리는 것은 하지 않는다.」라고 하는 내용의 실장으로 합니다.
MiniMagick gem 정보
Ruby에서 ImageMagick을 사용하기위한 gem은 MiniMagick이라고합니다. gem 자체의 설치는 CarrierWave gem 설치와 동시에 완료됩니다.
Gemfilesource 'https://rubygems.org'
# ...略
gem 'carrierwave', '1.2.2'
gem 'mini_magick', '4.7.0' # <-- 既にインストール済み
# ...略
group :production do
gem 'pg', '0.20.0'
gem 'fog', '1.42'
end
# ...略
CarrierWave::MiniMagick 모듈 정보
CarrierWave에는 MiniMagick을 사용하는 기능이 포함되어 있습니다. 단, 해당 기능을 사용하려면 CarrierWave::MiniMagick
라는 모듈을 include
해야 합니다.
include CarrierWave::MiniMagick
이미지의 리사이즈 처리의 실체
「화상의 종횡 어느쪽이 400px를 넘고 있었을 경우, 적절한 사이즈로 축소한다. 단, 화상을 늘리지 않는다.」라고 하는 내용의 실장의 경우, 그 실체는 이하와 같이 됩니다.
process resize_to_limit: [400, 400]
process
메소드에 resize_to_limit
라는 심볼을 키로 하는 해시를 줍니다. 해시의 값에는, [縦ピクセル数, 横ピクセル数、{オプション}]
라고 하는 배열을 줍니다.
Picture 업로더 내용 변경
위를 종합하면 app/uploaders/picture_uploader.rb
의 변경 내용은 다음과 같습니다.
app/uploaders/picture_uploader.rb class PictureUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
- # include CarrierWave::MiniMagick
+ include CarrierWave::MiniMagick
process resize_to_limit: [400, 400]
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
...略
# Add a white list of extensions which are allowed to be uploaded.
# For images you might use something like this:
def extension_whitelist
%w(jpg jpeg gif png)
end
...略
end
Reference
이 문제에 관하여(튜토리얼 제13장 사용자의 마이크로 포스트 - 이미지의 리사이즈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rapidliner00/items/c5cd115ac71075c56a80
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Rails 튜토리얼을 진행하고 있는 개발 환경에서는 ImageMagick이 반드시 설치되어 있는 것은 아닙니다. 또한 ImageMagick 자체는 gem이 아니므로 Bundler의 관리 대상이 아니며 개별 환경에서 별도로 설치해야합니다. homebrew라든지 dnf라든지로 인스톨 하는 녀석이군요.
Docker의 루비 이미지는 데비안을 기반으로 구성되어 있습니다. 따라서 ImageMagick을 설치하는 명령은 다음과 같습니다.
# apt install imagemagick -y
yum 의 패키지명 (Rails 튜토리얼 본문에 기술되고 있던 것입니다)과는 달리,
imagemagick
는 모두 소문자가 됩니다.실제로 이미지 크기를 조정하도록 이미지 업로더 수정
이번은, 「화상의 종횡 어느 쪽인가가 400px를 넘고 있었을 경우, 적절한 사이즈로 축소한다. 단, 화상을 늘리는 것은 하지 않는다.」라고 하는 내용의 실장으로 합니다.
MiniMagick gem 정보
Ruby에서 ImageMagick을 사용하기위한 gem은 MiniMagick이라고합니다. gem 자체의 설치는 CarrierWave gem 설치와 동시에 완료됩니다.
Gemfilesource 'https://rubygems.org'
# ...略
gem 'carrierwave', '1.2.2'
gem 'mini_magick', '4.7.0' # <-- 既にインストール済み
# ...略
group :production do
gem 'pg', '0.20.0'
gem 'fog', '1.42'
end
# ...略
CarrierWave::MiniMagick 모듈 정보
CarrierWave에는 MiniMagick을 사용하는 기능이 포함되어 있습니다. 단, 해당 기능을 사용하려면 CarrierWave::MiniMagick
라는 모듈을 include
해야 합니다.
include CarrierWave::MiniMagick
이미지의 리사이즈 처리의 실체
「화상의 종횡 어느쪽이 400px를 넘고 있었을 경우, 적절한 사이즈로 축소한다. 단, 화상을 늘리지 않는다.」라고 하는 내용의 실장의 경우, 그 실체는 이하와 같이 됩니다.
process resize_to_limit: [400, 400]
process
메소드에 resize_to_limit
라는 심볼을 키로 하는 해시를 줍니다. 해시의 값에는, [縦ピクセル数, 横ピクセル数、{オプション}]
라고 하는 배열을 줍니다.
Picture 업로더 내용 변경
위를 종합하면 app/uploaders/picture_uploader.rb
의 변경 내용은 다음과 같습니다.
app/uploaders/picture_uploader.rb class PictureUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
- # include CarrierWave::MiniMagick
+ include CarrierWave::MiniMagick
process resize_to_limit: [400, 400]
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
...略
# Add a white list of extensions which are allowed to be uploaded.
# For images you might use something like this:
def extension_whitelist
%w(jpg jpeg gif png)
end
...略
end
Reference
이 문제에 관하여(튜토리얼 제13장 사용자의 마이크로 포스트 - 이미지의 리사이즈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/rapidliner00/items/c5cd115ac71075c56a80
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
source 'https://rubygems.org'
# ...略
gem 'carrierwave', '1.2.2'
gem 'mini_magick', '4.7.0' # <-- 既にインストール済み
# ...略
group :production do
gem 'pg', '0.20.0'
gem 'fog', '1.42'
end
# ...略
include CarrierWave::MiniMagick
process resize_to_limit: [400, 400]
class PictureUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
- # include CarrierWave::MiniMagick
+ include CarrierWave::MiniMagick
process resize_to_limit: [400, 400]
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
...略
# Add a white list of extensions which are allowed to be uploaded.
# For images you might use something like this:
def extension_whitelist
%w(jpg jpeg gif png)
end
...略
end
Reference
이 문제에 관하여(튜토리얼 제13장 사용자의 마이크로 포스트 - 이미지의 리사이즈), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/rapidliner00/items/c5cd115ac71075c56a80텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)