Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TImage. Копирование региона 
:(
    Опции темы
DissDoc
Дата 19.8.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 13.7.2006

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



Получилось так, что в данной проблеме всплыло еще и непонимание определения "ссылка" 
Собственно вопрос
прохожусь по TImage и комбинирую регион с помощью функции CombineRgn. Проблемы следующие:
1. Теперь хочу создать динамически еще один TImage newImage.
2. Вставить туда [newImage] сформированный регион HRGN MyRgn.
 smile  помогите примерчиком пожалуйста. Или 
PM MAIL WWW   Вверх
DissDoc
Дата 19.8.2007, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 13.7.2006

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



для первого пункта
Код

TImage* newImage = new TImage(oldImage) // несмотря на то что владельца нуно указывать, можно еще и какой-то &Image???
TImage* newImage = oldImage; // тоже неверно, копируется ссылка

все это неверно
Как грамотно скопировать изображение в новую динмически созданную картинку?
PM MAIL WWW   Вверх
Lazin
Дата 19.8.2007, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154



Код

HDC dc = Image->Picture->Bitmap->Canvas->Handle;

TImage *nImage = new TImage(this);
nImage->Parent = this;// появица 
nImage->Left = ...

HDC ndc = nImage->Picture->Bitmap->Canvas->Handle;

//дальше делаешь всё что тебе надо


Это сообщение отредактировал(а) Lazin - 20.8.2007, 07:47
PM MAIL Skype GTalk   Вверх
DissDoc
Дата 19.8.2007, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 13.7.2006

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



А это что вы делаете? кста с this у меня не работает (у меня не должна Image привязываться к форме... мне надо картинку просто после вырезки обработать и вставить)
и у меня формируется регион  HRGN

Это сообщение отредактировал(а) DissDoc - 19.8.2007, 15:19
PM MAIL WWW   Вверх
Lazin
Дата 20.8.2007, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154



Цитата

у меня не должна Image привязываться к форме... мне надо картинку просто после вырезки обработать и вставить

Image - для того и нужен что-бы привязываться к форме. Если нужно, можно использовать TBitmap:

Код

Graphics::TBitmap* bmp = new Graphics::TBitmap;
bmp->Height = Image->Picture->Bitmap->Height;
bmp->Width  = Image->Picture->Bitmap->Width;
bmp->Canvas->Draw(0,0,Image->Picture->Bitmap);//Копируем содержимое Image в буфер
//сдесь делаеем обработку
//и копируем обратно
Image->Picture->Bitmap->Assgn(bmp);
delete bmp;

Можно API-шными ф-ями пользоваться, для этого:
bmp->Handle - дескриптор битовой карты
bmp->Canvas->Handle - контекст графического устройства.

Это сообщение отредактировал(а) Lazin - 20.8.2007, 08:00
PM MAIL Skype GTalk   Вверх
DissDoc
Дата 20.8.2007, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 13.7.2006

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



Да. Я что-то не сообразил касаемо битмапа =)
а что касается копирования - оно у меня уже есть и имеет тип HRGN и я не знаю как сформированный регион преобразовать в TBitmap  smile 
PM MAIL WWW   Вверх
Lazin
Дата 20.8.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154



Нужно установить область отсечения для битмапа с помощю SelectClipRgn(hDC, hRGN); а затем скопировать в него изображение.
PM MAIL Skype GTalk   Вверх
Mark7
Дата 20.10.2007, 05:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 20.10.2007

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



Здравствуйте!

я вот создаю объект  класса TImage как приведенно в этом коде:
Код

HDC dc = Image->Picture->Bitmap->Canvas->Handle;

TImage *nImage = new TImage(this);
nImage->Parent = this;// появица 
nImage->Left = ...

HDC ndc = nImage->Picture->Bitmap->Canvas->Handle;

//дальше делаешь всё что тебе надо



все манипуляции с ним проходят отично, но только в той функции в которой он создается. Хотя  объект nImage у меня объявлен как глобальный.
... Хм пока писал понял, что в функции же создается не он, а другой локальный объект типа TImage.

тогда объясните, как сделать его глобальным.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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