RMagick удаляет белый фон с изображения и делает его прозрачным
Мне нужно удалить белый фон с этого изображения и сделать фон прозрачным. Так что это просто черный тик на прозрачном фоне, экспортируемый как png.
например. Turn
В
Любые идеи?
Ответ 1
convert image.png -matte -fill none -fuzz 1% -opaque white result.png
Заменяет что-либо белое прозрачным. Опция fuzz включает все, что почти белое.
Ответ 2
Я знаю, что я очень опаздываю на вечеринку, но многое изменилось с тех пор, как этот вопрос был впервые опубликован, так вот как вы можете сделать это сегодня, используя хотя бы версию 2.15.4 of rmagick
Предполагая, что у вас есть изображение где-то доступно:
Если вы также хотите обрезать изображение так, чтобы оно было только размером с границей, просто используйте .trim!
image.trim!
EDIT:
Выключение решения выше не работает для всех случаев использования. Более общее решение таково:
# the image needs to be in 'PNG' format
image.format = 'PNG'
# set a fuzz on the image depending on how accurate you want to be
image.fuzz = '10%'
# get the image background color
background_color = image.background_color
# convert pixels based on their color to being transparent
# the fuzz set above controls how accurate the conversion will be
image.paint_transparent(background_color)
Ответ 3
С помощью v6.8.4-Q16, используя следующую команду:
convert nike.png -matte -fill none -fuzz 1% -opaque white nikeOutput.png