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

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

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

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

Ruby on Rails

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

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

Q&A

解決済

1回答

565閲覧

ユーザー画像とアイテム画像をImagemagickに取り込みcompositeで画像合成をしたい。

datiko

総合スコア74

Ruby

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

Ruby on Rails

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

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

0グッド

0クリップ

投稿2022/03/14 03:47

実現したい事

user_image(以下、ユーザー画像)とitem_image(以下、アイテム画像)をImagemagickに取り込みcompositeで画像合成をしたい。

html

1class VirtualFittingsController < ApplicationController 2 def index 3 @item = Item.find(params[:item_id]) 4 user_image = MiniMagick::Image.open(rails_blob_url(current_user.images[0])) 5 item_image = MiniMagick::Image.open(rails_blob_url(@item.images[4])) 6 7 8 result = user_image.composite(item_image) do |config| 9 config.compose 'Over' 10 config.gravity 'NorthWest' 11 config.geometry '+0+0' 12 end 13 result.format("jpg") 14 result.write("storage/virtualfitting/virtualfitting#{current_user.id}.jpg") 15 end 16end

詰まっている箇所

ユーザー画像とアイテム画像をimagemagickで読み込み画像を合成させることはできたがアイテム画像が回転してしまい、合成されてしまう

合成された画像
https://gyazo.com/49d5683514a67c63507f43735b9d6240

試した事

html

1 item_image = MiniMagick::Image.open(rails_blob_url(@item.images[4])) 2 #item_image.format("jpg") 3 #item_image.write("item_image.png")

上記のコードを用いて、アイテム画像単体で画像を生成してみたがアイテム画像は横にならず縦のまま画像を生成していることを確認した、

正しく縦に生成されているアイテム画像
https://gyazo.com/059e3cd08a4ee655149d258f55f74fd0

以上から分かった事はおそらく
result = user_image.composite(item_image) do |config|
で画像合成をした段階でアイテム画像が横になってしまい合成されたと思われるが、なぜ横になってしまうのかがわからない、どなたかわかる方がいらっしゃいましたらご教授いただけると幸いです。

何卒よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

自己解決

アイテムイメージ側は画像編集ソフトで編集していたのですがユーザー画像はアイフォンから直接送った画像でアイフォン側も画像編集ソフトでPNGに変換し直したところ直りました。とはいえこのままではシステムとして不十分なので改良していこうと思います。

投稿2022/03/14 06:59

datiko

総合スコア74

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問