2013-01-01 1 views
3

После того, как я повернул или повернул изображение с Imagemagick, в углах, где произошло вращение, есть белый фон. Пример:Адаптивный фон после вращения/стола в Imagemagick

convert image.png -rotate 10 out.png 

Выход: http://imgur.com/8bZQ6

Есть ли способ, которым я мог бы как-то заполнить эти белые углы с некоторой фактурой или, по крайней мере, цвет, который гармонирует с изображением? Кадрирование - это не вариант.

Я нашел отличное решение для простого вращения:

convert image.png -virtual-pixel Edge +distort SRT 10 out.png 

Выход: http://imgur.com/edMS0

Но, к сожалению, она не работает с командой -deskew ...

Таким образом, делает кто-нибудь знает, как заполнить эти углы аналогичным образом для команды -deskew-rotate)? Дело в том, чтобы скрыть тот факт, что изображение было повернуто как можно лучше.

+0

Хмм, я не вижу никаких белых углов ... –

+0

Только потому, что в окне браузера белый :) http://imgur.com/SqVM3 – HairyFotr

+0

Не могли бы вы сделать его на черном фоне, пожалуйста? :) –

ответ

2

Я буду идти вперед и ответить на мой собственный вопрос, но я все еще надеюсь на лучшее решение.

Вы можете установить цвет -background, который работает с вращением и поворотным столом.

Вот решение, которое использует средний цвет изображения:

convert image.png -background `convert image.png -resize 1x1 txt:- | tail -1 | cut -b 30-50` -rotate 10 out.png 

Выход: http://imgur.com/YCqkC

и лучшее решение, которое принимает некоторые пограничные пиксели:

convert image.png -background `convert image.png -resize 100x1! \(+clone -crop 1x1+0+0 \) +append -crop 2x1+99+0 -resize 1x1 txt:- | tail -1 | cut -b 30-50` -rotate 10 out.png 

Выход: http://imgur.com/4wDPO

Есть несколько сценариев bash (внутри backticks), поэтому эти решения являются только unix.

1

Попробуйте это:

convert image.png -background transparent -rotate 10 out.png 
+0

Углы не могут быть более невидимыми, чем это. Почему это еще не принято? – mmgp

+0

Я хотел бы заполнить это пространство как можно лучше, а не просто сделать его прозрачным. Вторая ссылка является примером, но она не работает для команды -deskew (и других базовых преобразований). Извините, я продолжаю редактировать и добавлять контент к вопросу, поскольку я узнаю больше ... – HairyFotr

+0

Что такое «как можно лучше»? Я бы подумал, что, может быть, вы захотите сделать inpaint созданным фоном. – mmgp