BackEnd

Shrineでアップロードする際に画像を加工する

投稿日:2017年5月5日 更新日:

はじめに

こんにちは、onoです。

前回、Shrineを使って画像をアップロードする方法を紹介しました。
今回は、アップロード時に画像を加工する方法を紹介します。

 

アップロードする画像のリサイズ

Gemを追加

Gemfileに下記のGemを追加します。
(HomeBrewなどで事前にimagemagickをインストールしておいてください)

Uploaderの修正

Uploaderに画像リサイズの処理を追加します。

 

サムネイルを作成する

Uploaderの修正

versionsとdelete_rawのプラグインを追加し、リサイズ処理を修正します。

サムネイルを表示する

作成したサムネイルのurlはphoto.image[:thumb].urlで取得できます。

 

バリデーションの追加

Uploaderの修正

validation_helpersのプラグインを追加し、バリデーションを追加します。
バリデーションの処理はAttacher.validateの中に記述していきます。

今回は5MB以下のpngとjpgフォーマットの画像のみ受け付けるようにします。

 

インサートされるレコード

フォームから画像をアップロードして保存すると、下記のようなレコードがインサートされます。

 

さいごに

今後はバックグラウンド処理やS3へのダイレクトアップロードを調べていきます。

blog-page_footer_336




blog-page_footer_336




-BackEnd

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

CAPTCHA


関連記事

laravel logo

Laravelでテストコードを書くには? Featureテスト/Unitテスト

1 はじめに2 FeatureとUnitの使い分け3 テスト用データベースの準備4 Featureテスト4.1 テスト対象のコード4.2 テストコードの実装4.3 テスト結果の検証4.3.1 ステータ ...

laravel logo

PHPで画像編集~Intervention Image~

1 はじめに2 やる事3 インストール4 画像読み込み5 文字列の追加6 編集した画像の保存7 実際のコード8 他に使う機会がありそうな編集8.1 モザイク8.2 ぼやけ8.3 リサイズ9 さいご10 ...

Pythonのポリモーフィズム、ABCにするか? プロトコルにするか?

1 はじめに2 ズバリ、ABCとProtocolは何が違うか?3 それぞれの使い勝手をおさらい3.1 ABC3.2 Protocol3.2.1 実装クラスからの継承4 どっちを使うか?5 さいごに6 ...

laravel logo

LaravelのFacade(ファサード)とは? 何気なく使用していた裏側の仕組みを解説!

1 はじめに1.1 Facadeを使用しているクラス2 Facadeの仕組み3 Facadeの作成3.1 サンプルコードに必要な実装3.2 Serviceの作成3.3 Facadeクラスの作成3.4 ...

icon

PHP、Ruby、Pythonのfor構文を比較してみた

1 はじめに1.1 環境2 ドキュメント2.1 PHP2.2 Ruby2.3 Python3 1から100まで出力してみる3.1 PHP3.2 Ruby3.3 Python4 リスト型(配列)の出力4 ...

フォロー

blog-page_side_responsive

2017年5月
日 月 火 水 木 金 土
 123456
78910111213
14151617181920
21222324252627
28293031  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。