Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Отрисовка двумерного массива цветов


Автор: Larrr 19.10.2008, 00:48
Привет, такой вопрос.

У меня есть файл, где хранится

1) число n - размер квадратного поля. То есть если n=10, то надо отрисовать поле 10*10
2) элементы этого поля в виде (x,y,RGB(1,2,3)) - в файле обязательно определены все элементы поля  

Распарсить файл в объект конечно же не проблема.

Надо отрисовать на форме это поле в цветах указанных в файле. То есть если элемент указан как (1,1,RGB(255,0,0)), то ячейка на позиции (1,1) в решетке должна быть нарисована цветом RGB(255,0,0)

Как это лучше делать? Какие компоненты использовать?

Автор: diadiavova 19.10.2008, 00:56
Создаётся System.Drawing.Bitmap нужного размера(размер указать в конструкторе). Дальше для каждого пиксела вызывать метод SetPixel этого битмапа, в аргументах указывать координаты и цвет, полученные из файла. Дальше битмап прорисовывать любым способом(с помощью пикчербокса например)

Автор: Larrr 19.10.2008, 01:24
diadiavova, спасибо! Я вот еще нашла способ отрисовывать непосредственно прямоугольниками на панели

Код

Graphics g = panel1.CreateGraphics();
SolidBrush brush = new SolidBrush(Color.FromArgb(100,100,100));
g.FillRectangle(brush, 100,100, 20,20);

Автор: diadiavova 19.10.2008, 02:00
Я просто не совсем понял задачу. Я подумал, что для каждого пиксела свой цвет указан. Прямоугольник действительно лучше так рисовать, только чтобы он был устойчивым его надо перерисовывать при каждой прорисовке формы(событие Paint формы или переопределить метод OnPaint, и объект Graphics можно получить из аргумента е)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)