Здравствуйте, Saruwatari, Вы писали:
S>Здравствуйте, Finer, Вы писали:
F>>Рисую на контроле пером, сохраняю в bmp. А в файле пусто! Help!
S>Ты действительно сохраняешь?
F>Да, точно! А напишите, как Вы это делаете!!
Здравствуйте, 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");
}
//==============================================================
Здравствуйте, <Аноним>, Вы писали:
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_, Вы писали:
Разумеется линии тут не будет, т.к. линия нарисована в окне, а сохраняешь ты битмап в котором нарисовал окно, а про линию забыл...
Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте, _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
Оценка:
Спасибо!!
То есть нужно как бы в виртуальном растре рисовать?!
Здравствуйте, <Аноним>, Вы писали:
А>Спасибо!! А>То есть нужно как бы в виртуальном растре рисовать?!
Хм, я тебя не совсем понял (Растр — точечная структура графического изображения при печати.)
Но тем не менее да, ты создаешь виртуальную область, в которую и рисуешь нужное тебе изображение..., но эту область ты создаешь для конкретного bitmap — объекта... (что написал???)
Надеюсь понятно?