2014-01-08 7 views
0

После того, как я нарисовал объект в растровом изображении, я бы хотел его переместить, поэтому мне нужно снова нарисовать объект в фоновом цвете, прежде чем снова рисовать в нужном цвете цвет. Предполагая, что это правильный подход, как мне узнать, каков цвет фона на самом деле? Спасибо, ДжеймсПоиск цвета фона System.Drawing.Bitmap

ответ

1

После того, как вы рисуете ваш объект можно использовать только GetPixel, чтобы получить цвет:

Bitmap.GetPixel(x,y) 

Почему просто не очистное весь битмап и снова переписывания свой объект? Если ваше растровое изображение не очень велико, вы, вероятно, даже не заметите разницы в производительности.

1

Поскольку у вас есть контроль над холстом, и если у вас есть «чистый» холст, вы можете получить цвет любого пикселя перед рисованием, и это должен быть ваш фоновый цвет.

Но помните, что у вас нет цвета фона на обычном растровом изображении, просто кучка пикселей! Поэтому, если ваш холст не ясен или если у вас нет способа получить цвет перед рисованием, вы должны сделать предположения. В зависимости от ваших требований существует несколько решений. Мои предложения являются:

  • Можно предположить пиксель на углу ваших цветов фона
  • цвета, который появляется чаще всего цветом фона
Смежные вопросы