Ruby
 Computer >> コンピューター >  >> プログラミング >> Ruby

MiniMagick Gem:Rubyを使用して画像を変換する方法

Rubyアプリケーションで任意の種類の画像を操作する場合は、何らかの方法で画像を変更する可能性が高くなります。

サイズを変更してスペースを節約し、ユーザーのダウンロードを高速化するのと同じです。

しかし、どうすればこれを行うことができますか?

MiniMagickはあなたを助けることができる宝石です。

これは、ImageMagickプログラムとRubyコードの間のインターフェースです。

あらゆる種類の変換を画像に適用して、ニーズに合わせて画像をカスタマイズするのに役立ちます!

最初

ImageMagickをインストールする必要があります オペレーティングシステムのパッケージマネージャーを使用するか、プロジェクトのWebサイトからインストーラーをダウンロードします。

次に、mini_magickを使用します 通常のRubyメソッドを使用して画像に変更を加えることができます。

いくつかの例を見てみましょう!

画像を開く

画像は2つの方法で開くことができます:

  1. MiniMagick::Image.open =>画像のコピーを作成します
  2. MiniMagick::Image.new =>元の画像を変更します

open メソッドはファイル名とURLの両方を受け取るため、Webから直接画像を取得できます。

無料の写真共有サイトである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を使用して画像を変更する方法(回転、サイズ変更、トリミング)を学習しました Ruby gem!

読んでくれてありがとう。


  1. Windows PC で大量の画像のサイズを変更する方法

    ブログのまとめ – Windows 用の一括画像リサイザーを入手して、時間と労力を節約してください。一括画像のサイズをすばやく変更する方法については、ブログを参照してください。 異なるプラットフォームにアップロードするには、画像のサイズが異なる必要があります。それらのサイズを変更するには、画像編集ツール以外の特別なツールが必要です。専門家は、大量の画像を管理するための多くのオプションを提供する写真管理ソフトウェアを使用しています。しかし、あなたがそれについて何も知らない場合、私たちはあなたの救助のために専用のツールを用意しています. PC にダウンロードされた一括画像リサイザは、画像を個別

  2. 画像サイズ変更ツールを使用して画像の向きを調整し、画像を拡大する方法

    1 枚の写真は 1,000 語の価値があるため、ほとんどの人は段落を読むよりも画像を見るのが好きです。そして、言語の制約を破って理解しやすいインフォグラフィックや有益な写真を生み出したのは、この傾向です.そのようなものを作成するには、大量の画像のストックと画像編集ツールが必要です。このブログでは、画像の向きを調整して画像を拡大するのに役立つ素晴らしいツールに焦点を当てています。 Image Resizer:最高の画像編集ツール Image Resizer は、多数の画像のサイズ変更、反転、回転、名前変更、フォーマットの変更を同時に行うための優れたツールです。視覚的な品質を犠牲にせずに写真