Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как скопировать кусок изображения?

1.9K
16 декабря 2003 года
vpdt
34 / / 26.04.2003
Как скопировать кусок изображения в буфер используя TBitmap, а потом когда надо программно вставить
пользовался CopyRect(); не помогло он только меняет местами:(
310
16 декабря 2003 года
fellow
853 / / 17.03.2003
Создайте целевой TBitmap, установите его размеры, глубину цвета и прочие свойства соответственно с размерами и свойствами копируемого фрагмента, после чего копируйте из Canvas исходного объекта на Canvas целевого объекта. Метод CopyRect вызывается для Canvas исходного изображения, в качестве аргумента передаётся Canvas целевого изображения.
1.9K
16 декабря 2003 года
vpdt
34 / / 26.04.2003
Цитата:
Originally posted by fellow
Создайте целевой TBitmap, установите его размеры, глубину цвета и прочие свойства соответственно с размерами и свойствами копируемого фрагмента, после чего копируйте из Canvas исходного объекта на Canvas целевого объекта. Метод CopyRect вызывается для Canvas исходного изображения, в качестве аргумента передаётся Canvas целевого изображения.


Слушай очень умно, задам по другому вопрос.
Как в Buffer заданнный вот таким способом
Graphics::TBitmap *Buffer= new Graphics::
TBitmap;
Скопировать изображение с помощью TRect?

310
17 декабря 2003 года
fellow
853 / / 17.03.2003
Код:
void SaveBitmapImage(Graphics::TBitmap* pdest, Graphics::TBitmap* psource, TRect arect)
{
 pdest->HandleType = psource->HandleType;
 pdest->PixelFormat = psource->PixelFormat;
 pdest->Monochrome = psource->Monochrome;
 pdest->Transparent = psource->Transparent;
 pdest->TransparentMode = psource->TransparentMode;
 pdest->TransparentColor = psource->TransparentColor;

 NPLOGPALETTE Palette;
 Palette = (NPLOGPALETTE) new BYTE[sizeof(LOGPALETTE)+256*sizeof(PALETTEENTRY)];
 Palette->palVersion=0x300;
 Palette->palNumEntries=256;
 ::GetSystemPaletteEntries(::GetDC (::GetDesktopWindow()), 0, 256, Palette->palPalEntry);
 pdest->Palette = ::CreatePalette((LPLOGPALETTE) Palette);
 delete[] Palette;
 pdest->Width = arect.Width();
 pdest->Height = arect.Height();
 psource->Canvas->CopyRect(TRect(0,0,pdest->Width-1,pdest->Height-1),pdest->Canvas,arect);
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог