質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

1回答

4876閲覧

Rails ユーザー画像UPロードの際の画像を圧縮をしたいのですが、、

showko222

総合スコア13

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2018/02/22 01:29

前提・実現したいこと

Railsで練習でQ&Aサイトのようなものを作っています。
ユーザーのプロフィール画像をアップロードしてユーザー画像として使用したいのですが、
実際に使用するサイズはサムネ用として小さなものなのに、
1つ2MBや3MBのファイルをそのまま扱ってしまう為、質問一覧ページなどは非常に重くなってしまいます。

どなたか、簡単な対処法の知見をお持ちでないでしょうか
お助けくださいませ

画像UPのコード

if params[:image] @user.image_name = "#{@user.id}.jpg" image = params[:image] File.binwrite("public/user_images/#{@user.image_name}", image.read) end if @user.save flash[:notice] = "ユーザー情報を編集しました" redirect_to("/users/#{@user.id}") else render("users/edit") end
rails

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

サムネイル用ということは、画像を保存する際に RMagick で、リサイズして保存すればいいのではないでしょうか?

require 'RMagick' width = 200 height = 150 original = Magick::Image.read('image001.png').first new_imame = original.resize(width, height) new_imame.write('image001_thumb.png')

resize - RMagick 参照


追記:
用途によっては、resize_to_fill か resize_to_fit の方がいいかもしれません。

投稿2018/02/22 01:56

編集2018/02/22 02:00
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

showko222

2018/02/22 03:12 編集

ご回答ありがとうございます、初心者すぎて恐縮なのですが。 調べますと'RMagick'のGemのインストールには、 前提としてimagemagickのインストールされていることが必須との文面ございました、 ///質問後コードを削除しました/// が出てきたのですが、 今後の動きとしては、 Rmagickをbundle install→その後いただいたコードをどこかに書くという流れでよろしいでしょうか。 お手数おかけしますが何卒よろしくお願いいたします。。。
CHERRY

2018/02/22 02:10

お使いの環境は、 macOS ですか?
showko222

2018/02/22 02:10

はい、左様でございます!
CHERRY

2018/02/22 02:14

ターミナルで、 convert --version と入力・実行して、以下のような表示が出れば、ImageMagick は、インストールされていますので、Rmagick からで、OK です。 > Version: ImageMagick 7.0.7-19 Q16 x86_64 2018-01-06 http://www.imagemagick.org > Copyright: © 1999-2018 ImageMagick Studio LLC > (以下略)
showko222

2018/02/22 02:21

ありがとうございます。 表示されましたので進めておりますが Could not find gem 'RMagick' in any of the gem sources listed in your Gemfile. と出てきてしまいました、、、
showko222

2018/02/22 02:29

ImageMagickのverを下げる必要があったようです。 verを下げて下記のような対応をしているのですが これにてGemインストール完了という認識でよろしいでしょうか 頼りっきりで本当に情けないのですが、よろしくお願い申し上げます。。。 === $ gem install rmagick Building native extensions. This could take a while... Successfully installed rmagick-2.16.0 Parsing documentation for rmagick-2.16.0 Installing ri documentation for rmagick-2.16.0 Done installing documentation for rmagick after 5 seconds 1 gem installed $ bundle install Fetching gem metadata from https://rubygems.org/............... Fetching gem metadata from https://rubygems.org/.. Could not find gem 'RMagick' in any of the gem sources listed in your Gemfile. ===
CHERRY

2018/02/22 02:39 編集

> Successfully installed rmagick-2.16.0 と出ているので、インストールは、完了していると思います。 そういえば、持ち歩いている MacBook では、macOS で、Rails 動かしていないなぁ。 docker で閉じている環境にしているので、Rails 環境で、convert --version を実行してみると > Version: ImageMagick 6.9.9-23 Q16 x86_64 2017-11-13 http://www.imagemagick.org > Copyright: © 1999-2017 ImageMagick Studio LLC と 6.9 になっていました。 バージョンの件、失念していたので失礼いたしました。
showko222

2018/02/22 03:05

有難うございます。 下記記述はどこにファイルを作って保存すれば良いかご教授願えないでしょうか。 任意のコントローラーに記述したところエラーが出てしまいました。 ========== require 'RMagick' width = 200 height = 150 original = Magick::Image.read("#{@user.id}.jpg").first new_imame = original.resize(width, height) new_imame.write('#{@user.id}_thumb.jpg') ================ また、画像保存は下記でthumbファイルを指定し ================= if params[:image] @user.image_name = "#{@user.id}_thumb.jpg" image = params[:image] File.binwrite("public/user_images/#{@user.image_name}", image.read) end ============ 表示に関しては下記にて行いたいと思っております。 =============== <img src="<%= "/user_images/#{post.user.image_name}" %>"> ============= 今回は何回もお世話になり、有難うございます。 ご確認いただきたく何卒よろしくお願い申し上げます、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問