Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/28: Рейтинг темы: голосов - 28, средняя оценка - 4.68
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 453
1

Написание графического редактора

20.11.2009, 01:11. Просмотров 5861. Ответов 7
Метки нет (Все метки)

Мне нужно написать на С# простенький графический редактор (на подобии пейнта). Пытался начать действовать методом тыка, а именно открывать в pictureBox , и что-то рисовать с использованием Canvas , но выходит ерунда. Пожалуйста подскажите что лучше использовать для решения моей задачи
Работаю в 2008 студии
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2009, 01:11
Ответы с готовыми решениями:

Создание графического редактора
Сам я начинаю только вникать в программирование(Windows Forms c#) Суть задания (большую часть я...

Создание простого графического редактора
Здравствуйте, форумчане! Нужна помощь по созданию графического редактора Много что посмотрел, но...

Разработка простейшего графического редактора
Всем привет. Постановка задачи заключается в написании простейшего графического редактора с...

Литература с примерами создания графического редактора
Подскажите доступную литературу, где описаны примеры создания графического редактора на С#....

7
sleepy
78 / 53 / 6
Регистрация: 29.07.2009
Сообщений: 179
20.11.2009, 09:23 2
Использовать GDI+. А именно классы Graphics или GraphicsPath.
1
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 453
20.11.2009, 14:52  [ТС] 3
Написал вот такую функцию открытия файлов и перемещения одного из них
файлы открывает но переместить отказывается
ошибка 'System.Drawing.RectangleF' is a 'type', which is not valid in the given context
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
     private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            pictureBox1.Visible = true;
            OpenFileDialog fd = new OpenFileDialog();
            fd.Title = "First step Site";
            fd.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
            if (fd.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = Image.FromFile(fd.FileName);
                MessageBox.Show("открыт Файл");
                RectangleF rect = new RectangleF(100.0F, 100.0F, 450.0F, 150.0F);
System.Drawing.Graphics.DrawImage(System.Drawing.Image.FromFile("1.jpg"), System.Drawing.RectangleF(rect));
            }
        }
делал по примеру http://msdn.microsoft.com/ru-r... 1321d.aspx
0
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
20.11.2009, 15:54 4
Отрисовка дожна происходить в событии onPaint формы, иначе не будет перирисовывать ваша картинка. Т.е. при "загрязнении" (сворачивании, перемещении) формы, изображение исчезнет.

Вы должны создать экземпля класса.
В вашем случае:
Цитата Сообщение от nikooolay Посмотреть сообщение
System.Drawing.Graphics.DrawImage(System.Drawing.Image.FromF ile("1.jpg"), rect);
Добавлено через 24 минуты
nikooolay, Мне кажется в твоем случае лучше сначала скопировать исходный bmp, а потом рисовать в копию и ее же и отрисовывать.
1
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 453
20.11.2009, 18:05  [ТС] 5
Цитата Сообщение от Chipnddail Посмотреть сообщение
В вашем случае:
System.Drawing.Graphics.DrawImage(System.Drawing.I mage.FromFile("1.jpg"), rect);
Не понял что и для чего мне нужно сделать
0
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
20.11.2009, 19:07 6
nikooolay, там же в примере msdn все есть, даже с примером.

e.Graphics.DrawImage(newImage, rect);, где e- PainEventArgs = параметры для перерисовки формы.

Не нужно делать все методом тыка. Почти в любой книге по C# есть глава о GDI+. Или в том же msdn есть практические руководства.
ЧИТАЙТЕ ЛИТЕРАТУРУ!

C#
1
2
3
4
5
protected override void OnPaint(PaintEventArgs e)
{
      RectangleF rect = new RectangleF(100.0F, 100.0F, 450.0F, 150.0F);
      e.Graphics.DrawImage(Image.FromFile("filename"), rect);
}
0
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 453
22.11.2009, 17:49  [ТС] 7
Не могу заставить работать этот пример
ошибок при компиляции нет
pictureBox1 - видимый
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  private void Form1_Load(object sender, System.EventArgs e)
        {
            pictureBox1.Dock = DockStyle.Fill;
            pictureBox1.BackColor = Color.White;
            pictureBox1.Paint += new System.Windows.Forms.PaintEventHandler(this.pictureBox1_Paint);
                    
            this.Controls.Add(pictureBox1);
        }
 
        private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {           
            e.Graphics.DrawString("This is a diagonal line drawn on the control",
                new Font("Arial", 10), System.Drawing.Brushes.Blue, new Point(30, 30));
                e.Graphics.DrawLine(System.Drawing.Pens.Red, 10, 20,
               40, pictureBox1.Bottom);
        }
0
14 / 14 / 1
Регистрация: 03.09.2009
Сообщений: 109
22.11.2009, 18:42 8
nikooolay, Стоит определиться используете ли вы конструктор форм, или же делаете все руками. Т.е. если вы в конструкторе добавили picturebox, то он уже был добавлен в коллекцию контролов, таким образом этот код лишний:
Цитата Сообщение от nikooolay Посмотреть сообщение
this.Controls.Add(pictureBox1);
PS У меня работатет.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2009, 18:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Функция сдвига по определенной оси для графического редактора
Есть программа рисующая линии по списку вершин и списку ребер. В результате программа выводит...

Есть у кого-нибудь код графического редактора (типо Paint'a)?
Не смогу точно сделать графический редактор, возможно у Вас есть код и Вы сможете поделиться им?...

Написание визуального HTML-редактора
Появилось желание написать простенький визуальный HTML редактор. Задумался над основным объектом-...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.