Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.05.2006, 11:36
Pavluha Pavluha вне форума
Прохожий
 
Регистрация: 11.05.2006
Сообщения: 3
Репутация: 10
Вопрос Проблема с GetBitMapBits и SetBitmapsBit?

Вот такая вот проблема.
Создаю 2 Bitmap-а. В один из них передаю картинку и масштабирую ее с помощью SetGraphicsMode и SetWorldTransform. Изображение нормально масштабируется. Затем пытаюсь скопировать с канвы 1-го Bitmap во второй.

Делаю так


GetMem(Baity, W,H);
GetBitMapsBit(Bmp1.Canvas.Handle, W*H, Baity);
SetBitMapsBit(Bmp.Handle, W*H, Baity);
FreeMem(Baity, W*H);

Дело в том что изображение получается все черное. Че я не так сделал.
Bmp.PixelFormat тоже установил.
Ответить с цитированием
  #2  
Старый 11.05.2006, 13:31
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Для начала (читаем хелп):
Цитата:
The GetBitmapBits function copies the bitmap bits of a specified bitmap into a buffer.

The GetBitmapBits function is not implemented in the Win32 API. This function is provided for compatibility with 16-bit versions of Windows. Win32-based applications should use the GetDIBits function.
кста, то же написано и про SetBitmapBits.
Далее, при копировании в буфер ты используешь хэндл канвы, а при копировании из буфера хендл битмапа, что довольно странно. Глядя в windows.pas думаю что и в первом случае стоит использовать хендл битмапа
Ответить с цитированием
  #3  
Старый 11.05.2006, 14:36
Pavluha Pavluha вне форума
Прохожий
 
Регистрация: 11.05.2006
Сообщения: 3
Репутация: 10
По умолчанию

Функции SetGraphicsMode и SetWorldTransform масштабируют канву, поэтому я хочу скопировать с канвы, а BitMap остается прежний.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 05:56.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter