Python Создать изображение в цвете относительно целого числа

Мне нужно сделать изображение на Python, которое выглядит так, но вертикально и только от зеленого до красного: http://www.google.co.uk/imgres?safe=off&espv=2&es_sm=91&biw=1280&bih=610&tbm=isch&tbnid=AuJytAtra5ARrM%3A&imgrefurl=http%3A%2F%2Fsvs.gsfc.nasa.gov%2Fgoto%3F4050&docid=cJwEIWqHngeBPM&imgurl=http%3A%2F%2Fsvs.gsfc.nasa.gov%2004%%2Fa000a0000%2Fcbar_scientists.png&w=1046&h=221&ei=9WMsU_TkHM-0hAfwyoDQBQ&zoom=1&ved=0CF4QhBwwAw&iact=rc&dur=194&page=1&start=0&ndsp=15

где зеленый - 10, а красный - 0. Когда он получает число, он делает полосу цветной до соответствующей точки, а оттуда - черно-белой. Затем мне нужен Python, чтобы сохранить это изображение в определенном месте.

Таким образом, изображение будет отображать, насколько далеко находится какой-либо объект, и показывать его в цвете (зеленый далеко — безопасно, красный — близко — опасность) на полосе.

Я знаю, что это трудно понять, но как мне это сделать?

Спасибо!


person developius    schedule 21.03.2014    source источник


Ответы (1)


Я совсем ничего не знаю о Python, но немного знаю об ImageMagick, который доступен здесь и имеет привязки Python.

Если вы запустите эту команду ImageMagick в командной строке:

convert -size 100x500 gradient:#00ff00-#ff0000 full.jpg

вы получите изображение размером 100x500 пикселей, называемое full.jpg, с градиентом от зеленого к красному, которое выглядит следующим образом:

введите здесь описание изображения

Если вы затем выполните следующую команду:

convert full.jpg -gravity North -background gray -crop 100x250+0+0! -extent 100x500 crop.jpg

вы получите новое изображение с именем crop.jpg, которое выглядит так:

введите здесь описание изображения

250 — это число, которое будет контролировать количество, которое становится серым, поэтому попробуйте изменить его. Итак, если ваш входной номер, который вы упомянули, равен 1, возможно, вы использовали бы 50 вместо 250 (потому что 1/10 высоты изображения 500 пикселей составляет 50 пикселей), если это 2, возможно, используйте 100 вместо 250...

А может и поможет, а может и нет!!!

person Mark Setchell    schedule 21.03.2014
comment
Спасибо, я попробую это и отчитаюсь! - person developius; 21.03.2014
comment
Просто мысль... если ваше число, которое управляет всем этим, представляет собой всего лишь целое число от 0 до 10, вы можете сделать 11 изображений заранее и заранее, вне Python, а затем просто выбрать одно из 11 в соответствии с вашим номером - нет необходимости интегрировать какой-либо ImageMagick в ваш Python. - person Mark Setchell; 21.03.2014
comment
Хороший вопрос ... Я попробую их обоих и посмотрю, какой из них работает лучше всего :) спасибо! - person developius; 22.03.2014
comment
Еще одна вещь, как я могу создать полностью серый? Для 0. - person developius; 14.04.2014
comment
Совершенно серый образ? Вот так... convert -size 500x500 xc:gray gray.jpg - person Mark Setchell; 14.04.2014
comment
Чтобы поместить серую область вверху, измените -gravity North на -gravity South. - person Mark Setchell; 14.04.2014
comment
Спасибо за это, гениально. - person developius; 15.04.2014