/ / RMagick Masking - inny wynik w tle - ruby, imagemagick, rmagick, maskowanie obrazu

RMagick Masking - inny wynik w tle - ruby, imagemagick, rmagick, maskowanie obrazu

Mam 2 zdjęcia koszulki, kolor jest czarny i różowy. Chcę połączyć to z logo Androida. na czarnej koszulce wynik był świetny. ale na różowym, obraz Androida jest jasny.

tutaj jest mój kod

    tshirt = Magick::Image.read("/Volumes/Work/rmagick/cacat.png").first

canvas = Magick::Image.new(tshirt.rows, tshirt.columns) do |c|
c.background_color = "none"
end

img = Magick::Image.read("/Volumes/Work/rmagick/android_logo2.png").first
img = img.resize_to_fit(250)

# # contour
contour = img.composite!(canvas, Magick::CenterGravity, Magick::InCompositeOp)
img = Magick::Image.read("/Volumes/Work/rmagick/android_logo2.png").first
img = img.resize_to_fit(250)

contour = contour.composite!(img, Magick::CenterGravity, Magick::AddCompositeOp)

tshirt = tshirt.composite!(contour, 295,250, Magick::PlusCompositeOp)

tshirt.write("/Volumes/Work/jadi.png")

i oto wynik

czarny

różowy

więc jak mogę zrobić obraz z Androidem, kiedy jest na czarnej koszulce. który z mojego kodu powinienem zmienić?

Odpowiedzi:

0 dla odpowiedzi № 1

Możesz uzyskać listę trybów mieszania z:

identify -list compose

Możesz to zrobić i zobaczyć, który odpowiada Twoim potrzebom:

#!/bin/bash
for blend in $(identify -list compose|grep -v Blur ); do
convert -gravity center -label "$blend" tshirt.png android.png -compose $blend -composite miff:-
done | montage - -tile 5x result.png

wprowadź opis obrazu tutaj