Help!!! Graphics
От: Finer Беларусь  
Дата: 04.04.07 18:02
Оценка:
Рисую на контроле пером, сохраняю в bmp. А в файле пусто! Help!

05.04.07 16:33: Перенесено модератором из '.NET' — TK
Re: Help!!! Graphics
От: Saruwatari Россия  
Дата: 04.04.07 19:05
Оценка:
Здравствуйте, Finer, Вы писали:

F>Рисую на контроле пером, сохраняю в bmp. А в файле пусто! Help!


Ты действительно сохраняешь?
Re[2]: Help!!! Graphics
От: Finer Беларусь  
Дата: 05.04.07 12:27
Оценка:
Здравствуйте, Saruwatari, Вы писали:

S>Здравствуйте, Finer, Вы писали:


F>>Рисую на контроле пером, сохраняю в bmp. А в файле пусто! Help!


S>Ты действительно сохраняешь?


F>Да, точно! А напишите, как Вы это делаете!!
Re: Help!!! Graphics
От: _Morpheus_  
Дата: 05.04.07 12:30
Оценка:
Здравствуйте, Finer, Вы писали:

F>Рисую на контроле пером, сохраняю в bmp. А в файле пусто! Help!


а ты уверен что действительно рисуешь, что действительно сохраняешь и что действительно в bmp?
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[2]: Help!!! Graphics
От: Аноним  
Дата: 06.04.07 13:30
Оценка:
Здравствуйте, _Morpheus_, Вы писали:

_M_>Здравствуйте, Finer, Вы писали:


F>>Рисую на контроле пером, сохраняю в bmp. А в файле пусто! Help!


_M_>а ты уверен что действительно рисуешь, что действительно сохраняешь и что действительно в bmp?




Вроде бы да!

//==============================================================
Graphics g = tabControl1.SelectedTab.CreateGraphics();
click++;
if (click == 1)
{
p1 = new Point(e.X, e.Y);
}
if (click == 2)
{
p2 = new Point(e.X, e.Y);
g.DrawLine(new Pen(Color.Tomato), p1,p2);
click = 0;

Bitmap bmp = new Bitmap(this.Width, this.Height, g);

this.DrawToBitmap(bmp, new Rectangle(0, 0, this.Width, this.Height));
bmp.Save("My.bmp");
}
//==============================================================
Re[3]: Help!!! Graphics
От: _Morpheus_  
Дата: 06.04.07 13:47
Оценка:
Здравствуйте, <Аноним>, Вы писали:

F>>>Рисую на контроле пером, сохраняю в bmp. А в файле пусто! Help!


_M_>>а ты уверен что действительно рисуешь, что действительно сохраняешь и что действительно в bmp?




А>Вроде бы да!


    Graphics g = tabControl1.SelectedTab.CreateGraphics();
    g.DrawLine(new Pen(Color.Tomato), p1,p2);


ок, тут ты нарисовал в окне линию


    Bitmap bmp = new Bitmap(this.Width, this.Height, g);
    this.DrawToBitmap(bmp, new Rectangle(0, 0, this.Width, this.Height));
    bmp.Save("My.bmp");
//==============================================================


а тут ты создаешь битмап, рисуешь в него форму и сохраняешь в файл.

Разумеется линии тут не будет, т.к. линия нарисована в окне, а сохраняешь ты битмап в котором нарисовал окно, а про линию забыл...
... << RSDN@Home 1.2.0 alpha rev. 676>>
Re[4]: Help!!! Graphics
От: Аноним  
Дата: 08.04.07 17:08
Оценка:
Здравствуйте, _Morpheus_, Вы писали:

Разумеется линии тут не будет, т.к. линия нарисована в окне, а сохраняешь ты битмап в котором нарисовал окно, а про линию забыл...

Плиз, напиши как нужно!
Re[5]: Help!!! Graphics
От: tyger Россия  
Дата: 09.04.07 03:19
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, _Morpheus_, Вы писали:


А>Разумеется линии тут не будет, т.к. линия нарисована в окне, а сохраняешь ты битмап в котором нарисовал окно, а про линию забыл...


А>Плиз, напиши как нужно!

Примерно так (код на C++, как перевести в C# разберешься)...
Panel^ pnl = dynamic_cast< Panel ^ >(panel1);

Bitmap^ bmp = gcnew Bitmap(pnl->Width, pnl->Height);
System::Drawing::Graphics ^ g = Graphics::FromImage(bmp);
            
g->DrawLine(System::Drawing::Pens::BlanchedAlmond, 0,pnl->Top+pnl->Height/2, int(pnl->Width ), pnl->Top+int(pnl->Height/2));

            int x0 = 0;
            int xM = pnl->Width;
            int yM = pnl->Height;

            Point oldPnt = Point(x0+1,yM/2);

            int y;
            for (int i = x0+1; i<xM; i++)
            {
               double d = (nfb * System::Math::Pow(i+nfc,nfa) + nfd);
               y = int( d ); 
               
               if (d > INT_MAX)
                  y = INT_MAX;

               if (y < 0-(yM/2)) y= 0-(yM/2);
               if (y> yM/2) y=yM/2;

               Point pnt = Point(i+1,y==yM/2?0:(yM/2)-y-1);
               {  g->DrawLine(System::Drawing::Pens::Green, oldPnt, pnt);
                  oldPnt = pnt;
               }
            }
         g->Flush();
         delete g;

         bmp->Save(L"C:\\bitmap.bmp");
         delete bmp;
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Help!!! Graphics
От: Аноним  
Дата: 10.04.07 13:08
Оценка:
Спасибо!!
То есть нужно как бы в виртуальном растре рисовать?!
Re[7]: Help!!! Graphics
От: tyger Россия  
Дата: 11.04.07 03:36
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Спасибо!!

А>То есть нужно как бы в виртуальном растре рисовать?!

Хм, я тебя не совсем понял (Растр — точечная структура графического изображения при печати.)
Но тем не менее да, ты создаешь виртуальную область, в которую и рисуешь нужное тебе изображение..., но эту область ты создаешь для конкретного bitmap — объекта... (что написал???)
Надеюсь понятно?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Help!!! Graphics
От: Аноним  
Дата: 12.04.07 15:40
Оценка: 1 (1)
Вроде бы как получилось!
Послушай, может быть дашь мне свой ICQ?
Буду у тебя консультироваться!
Re[9]: Help!!! Graphics
От: tyger Россия  
Дата: 16.04.07 05:37
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Вроде бы как получилось!

А>Послушай, может быть дашь мне свой ICQ?
А>Буду у тебя консультироваться!

Хм, а на форуме чем не устраивает?

261635584
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.