Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Bitmap. Вырезать регион


Автор: DissDoc 3.11.2007, 21:05
Собственно, я знаю много функций, но у меня проблема конкретная.
На Image есть изображение... Сложное изображение! Например лицо человека. Я своими алгоритмами нахожу например нос. Т.е. эту часть лица (нос) обхожу по контуру. И мне эту часть нужно скопировать в Image2. Т.е. тут проблема в том, что я копирую не прямоугольник. Что мне делать? Есть ли функции в BCB как сложные изображения копировать? или может есть уже подобные решения моей проблемы?

Автор: Alexeis 3.11.2007, 21:14
В делфях была похожая тема. Там в конце темы пример. Думаю поможет
http://forum.vingrad.ru/index.php?show_type=forum&showtopic=177675

Автор: DissDoc 17.11.2007, 18:40
Собственно нужна снова помощь.  smile 
update
Я заранее не знаю сколько мне нужно точек, чтобы сформировать полигон, поэтому использую vector.
Т.е. все точки для формирования полигона находятся в переменной vector<TPoint> vPoints.
Отсюда вопрос, как мне это все запихнуть теперь в CreatePolygonRgn();

Автор: Alexeis 17.11.2007, 18:47
Цитата(DissDoc @  17.11.2007,  18:40 Найти цитируемый пост)
Т.е. все точки для формирования полигона находятся в переменной vector<TPoint> vPoints.
Отсюда вопрос, как мне это все запихнуть теперь в Polygon(const TPoint * Points, const int Points_Size);

  Следует передать указатель на нулевой элемент.

Цитата(DissDoc @  17.11.2007,  18:40 Найти цитируемый пост)
Есть только Graphics::TBitmap* pBmp (и с его Canvas не вызывается функция  Polygon())

  Не может быть. На битмапе все прекрасно рисуется, просто сам битмап не компонент и не умеет сам рисоваться на экране. После того как на нем нарисованы все элементы его следует рисовать на одном из компонентов у которого есть свойство Canvas при помощи метода Draw.

Автор: DissDoc 17.11.2007, 18:49
Как передать указатель на нулевой элемент? Поможет примером?

P.S. см выше, я переделал вопрос, т.к. в хелпе внимательнее посмотрел ;-)

Автор: Alexeis 17.11.2007, 18:58
Цитата(DissDoc @  17.11.2007,  18:49 Найти цитируемый пост)
Как передать указатель на нулевой элемент? Поможет примером?

Код

 &vPoints[0] - имеет тип TPoint*

Автор: DissDoc 17.11.2007, 19:05
меня беспокоит один момент. 
если у меня vPoints.size() > 13 (например)
мне делать для каждого элемента, т.е. &vPoints[1], &vPoints[2] и т.д.
Или я написал ерунду, и мне нужно просто записать что-то вроде
Код

CreatePolygonRgn(&vPoints[0], vPoints.size(), WINDING);

Автор: Alexeis 17.11.2007, 19:09
Цитата(DissDoc @  17.11.2007,  19:05 Найти цитируемый пост)
Или я написал ерунду, и мне нужно просто записать что-то вроде

  Именно так. Указатель на первый элемент это и есть указатель на массив.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)