C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Сохранить Canvas как Bitmap
Syrex
  Отправлено: 21.12.2003, 15:30


Не зарегистрирован







cool.gif
Подскажите пожалуйста, как отобразить рисунок канвы PaintBox-а в Bitmap, для того, чтобы этот Bitmap рисовать в этом же PaintBox-е в событии OnPaint.
oJIeGa
Отправлено: 21.12.2003, 22:27


Не зарегистрирован







А в чём сложность то????
Я это использовал для того, что бы сохранить файл из пеинтбокса...

Graphics::TBitmap *BrushBmp = new Graphics::TBitmap;
BrushBmp->Width = pbGraf->Width;
BrushBmp->Height = pbGraf->Height;
BrushBmp->Canvas->CopyRect(pbGraf->ClientRect, pbGraf->Canvas, pbGraf->ClientRect);
AnsiString s = "\Otch.bmp";
BrushBmp->SaveToFile(s);

В общем здеся влавное, это 2-я и 3-я строчки, без них у меня не работало!

Ну а как восстановить на ОнПеинт сам думай...
Syrex
  Отправлено: 21.12.2003, 23:18


Не зарегистрирован







smile.gif
Проблема то и заключается в том, что при такаком подходе, в канвас битмапа сохраняется только видимая часть канваса паинт бокса плюс прихватывая с собой изображение экрана по краям формы приложения.
Конечно, можно рисовать сразу на канвасе битмапа, но по скорости, это на несколько порядков ниже.
В том то и мысль, чтобы:
1) На канвасе паинт бокса в цикле нарисовать мудрёную картинку
2) Сохранить этот канвас в битмапе
3) Битмап с картинкой паинт бокса расовать на этом паинт боксе в событии OnPaint, чтобы таскать мышкой паинт бокс без затирания картинки.
Плюс ко всему размет паинт бокса например 3000 точек.

Вернуться в Вопросы программирования в C++Builder