2016-09-05 3 views
0

мы запускаем mogrify пакетное задание как mogrify -path "WEBREADY\DONE" -layers merge -trim +repage -resize "1200x1200>" -define jpeg:extent=500kb -format jpg *.*Mogrify/ImageMagick изменение фона JPEG от серого до белого

Это прекрасно работает для изображений с белым фоном. Но недавно мы увидели 2% -ную ошибку и обнаружили ошибку. Mogrify обрезает, как ожидалось, только в Интернете, изображения окружены белым, так что это выглядит довольно глупо с серо-ист в углах.

решение будет либо

  • Detect не-белый фон. И в этом случае - только не обрезать
  • Или определить цвет фона (это JPG) в верхнем левом углу и установить для всего белого фона.

Можно ли это сделать в моей 1 команде выше для командной строки? (Так что найти серый фон первого и изменить его на белый)

example - original images is very highres

+0

Пожалуйста показать глупое изображение с сероватыми углами, поэтому мы ч n посмотрите, что вы имеете в виду. Я подозреваю, что ответ заключается в том, чтобы добавить '-fuzz 35%' или подобное около начала вашей команды, но давайте посмотрим один. –

ответ

1

Вы можете получить цвет верхнего левого пикселя, как это:

convert shirt.jpg -crop 1x1+0+0 txt: 
# ImageMagick pixel enumeration: 1,1,65535,srgb 
0,0: (57311,57311,57311) #DFDFDF srgb(223,223,223) 

Таким образом, это #DFDFDF.

Если теперь попытаться заменить этот оттенок с желтым (я знаю, что вы хотите, белый, но вы не можете видеть, что здесь):

convert shirt.jpg -fill yellow -opaque "#DFDFDF" result.png 

enter image description here

и теперь вы можете увидеть проблему , Фон не является однородным, и его цвет также появляется в вашей рубашке. Если вы добавите fuzz, это делает его более заметным:

convert shirt.jpg -fill yellow -fuzz 10% -opaque "#DFDFDF" result.png 

enter image description here

Даже если вы пытаетесь заливку от левого верхнего угла, вы должны надеяться, что нет пикселей по краям ваша рубашка, которые похожи на тот угол:

convert shirt.jpg -fill yellow -fuzz 5% -floodfill +0+0 "#dfdfdf" result.png 

enter image description here

+0

Хммм. Так отличный ответ !!! Но просто невозможно. Возможно, вы можете дать 1 полную командную строку на основе моего вопроса для будущих читателей с солидным фоном, и я могу это принять. Большой!! –

Смежные вопросы