Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перенос Graphics на pictureBox, Собственно, сабж... 
:(
    Опции темы
WolfAlone
Дата 16.9.2010, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: 1
Всего: 5



Доброго времени суток!

Имеем такую функцию:
Код

public Graphics DrawEllipse()
        {
            System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Red);
            System.Drawing.Graphics formGraphics;
            formGraphics = this.CreateGraphics();
            formGraphics.DrawEllipse(myPen, new Rectangle(0, 0, 200, 300));
            return formGraphics;
        }

Таких фигур рисуется несколько, для примера я привел одну.

Подскажите пожалуйста, как нанести возвращаемый этой функцией объект типа Graphics поверх фонового изображения в pictureBox?


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
CYBERDREAM
Дата 16.9.2010, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 8
Всего: 28



Если ты хочешь имея изображение в PictureBox рисовать его фон, то тебе нужно делать в несколько этапов:
Код

Image foreGround;
Image result=new BitMap(pb.Width,pb.Height);

public void DrawIt()
{
    Graphics g = Graphics.FromImage(im);
    g.Clear(Color.Transparent);
               ///рисуешь все что нужно - элипсы, квадраты, ....
              DrawEllipse(g);
    g.DrawImage(fore);
}


//рисовка элипаса должна быть следующей:
Код

DrawEllipse(Graphics g){
//рисуй на графиксе изображения, а не на графиксе формы
}


Это сообщение отредактировал(а) CYBERDREAM - 16.9.2010, 14:52


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
WolfAlone
Дата 16.9.2010, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: 1
Всего: 5



Я наверное не совсем корректно выразился. У меня есть некий pictureBox (пусть будет pictureBox1). В этот pictureBox - загружено изображение (фоном, из JPEG).
Есть объект типа Graphics, на котором нарисованы нужные мне фигуры (эллипсы, линии и пр.), который возвращается функцией DrawEllipse().

Нужно:
То, что возвратила функция (объект типа Graphics) - отрисовать в pictureBox1, поверх фонового изображения (которое туда уже загружено).

P.S. Затем, нужно будет стереть нарисованное мною в PictureBox'e, что бы нарисовать новый набор фигур, не затрагивая при этом фоновое изображение (которое туда загружено из JPEG-изображения).

Это сообщение отредактировал(а) WolfAlone - 16.9.2010, 15:14


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
CYBERDREAM
Дата 16.9.2010, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 8
Всего: 28



в любом случае Графикс ты должен быть не из формы. smile 
я бы сделал так:
Сохраняю изобрежение фоновое в переменную Image back;
Создаю новое изображение с размерами как у back 
Код

Image drawed=new Bitmap(back.Width,back.Height)
;
Каждый рас когда перерисовка делаем:
Код

Graphics g=Graphics.FromImage(drawed);
g.DrawImage(back);
DrawEllipse(g);
g.Dispose();



Добавлено через 1 минуту и 52 секунды
надеюсь я тебя правильно в этот раз понял


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
WolfAlone
Дата 16.9.2010, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


В экстазе
***


Профиль
Группа: Завсегдатай
Сообщений: 1010
Регистрация: 16.9.2008
Где: Рай

Репутация: 1
Всего: 5



А если картинка будет достаточно большой, вторая копия фонового изображения - не начнет её сильно отъедать?
-=Я имел в виду оперативку =-

Это сообщение отредактировал(а) WolfAlone - 16.9.2010, 18:30


--------------------
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

Ф топку Ubuntu, Debian наше фсё!

(с) Евгений Вольф
PM MAIL WWW ICQ Skype   Вверх
CYBERDREAM
Дата 16.9.2010, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I think, there4 I am
***


Профиль
Группа: Завсегдатай
Сообщений: 1096
Регистрация: 31.10.2006
Где: CyberLand

Репутация: 8
Всего: 28



будешь работать с широкоформатным изображением? может и будет) но я не думаю что сильно.


--------------------
Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно)
Telegram, skype: kuchuk.artiom
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1096 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.