![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как скопировать небольшую часть картинки в новый битмап? [D7, WinXP]
Artemiy2004 © (2004-10-30 13:55:00)Добрый день, вот нашел такой исходник на вашем форуме. В нем предполагалось копирование изображения панельки в битмап. Хотел тоже самое сделать, но только скопировать маленький кусочек размером 16х16 из большой картинки которая загружена в Image1.
Далее этот новый маленький битмап делаю глифом SpeedButton. Результат, вместо картинки вставляется пустота. Что я тут неверно делаю, поправьте исходник пожалуйста.
procedure TForm1.MakeBitMap;
var
srcDC, destDC: HDC;
hbm: HBITMAP;
resBMP: TBitMap;
begin
resBMP := TBitMap.Create;
srcDC := GetDC(Image1.Picture.Bitmap.Handle);
destDC := CreateCompatibleDC(srcDC);
// создаем битмап
hbm := CreateCompatibleBitMap(srcDC, 16, 16);
SelectObject(destDC, hbm);
// копируем содержимое
BitBlt(destDC, 0, 0, 16, 16, srcDC, 0, 0, SRCCOPY );
resBMP.Handle := hbm;
// после использования удаляем все лишнее
DeleteDC( destDC );
ReleaseDC(Image1.Picture.Bitmap.Handle, srcDC );
DeleteObject( hbm );
SpeedButton1.Glyph := resBMP;
end;
Mihey_temporary (2004-10-30 23:39:00) [1]Кстати, ты знаешь, что TBitmap.Canvas.Handle имеет тип HDC??? Действуй.
Defunct (2004-10-30 21:17:00) [2]CopyRect
Artemiy2004 (2004-10-30 14:12:00) [3]очень нужно, помогите плиз.