Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2010, 13:45   #11
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

X_X А нельзя хотя бы намекнуть, где она? Там текста книг на 8.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 29.06.2010, 14:25   #12
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Так, функу не нашел.

Научился пользоваться Get\SetPixel но, похоже, это достаточно медленный вариант, чтобы на нем что-то делать. Прочел, что BitBlt быстрее, похоже, придется разбираться с ним.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 29.06.2010, 20:43   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

можно создать битмап 24 битный и банально наш 32 битник нарисовать на нем)

а насчет 32-битов, то там будет PRGBQuad
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 29.06.2010, 21:38   #14
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
а насчет 32-битов, то там будет PRGBQuad
При вызове вылезает та же ошибка, что и в #9. Причем смотря через отладчик вижу, что в свойствах BMP вылазиет какая-то фигня, типа planes = 65535
Код:
Procedure FVFL_Brightness32(Handle: HBITMAP; Value : Integer); StdCall;
{ Brightness value : 0 = -255, 255 = 0, 512 = +255 }
{ 0 ---------------- <- 255 -> --------------- 512 }
Var
 X, Y: Integer;
 BMP: BITMAP;
 P1, P2: PRGBQuad;
Begin
 Windows.GetObject(Handle, SizeOf(Bmp), @BMP);
 P1 := BMP.bmBits;
 If BMP.bmBitsPixel = 32 Then
      For Y := 0 To BMP.bmHeight - 1 Do
            Begin
             P2 := P1;
             For X := 0 To BMP.bmWidth - 1 Do
                  Begin
                   If Value < 255 Then
                    Begin
                     P2.rgbRed   := Sub(P2.rgbRed, 255 - Value);
                     P2.rgbGreen := Sub(P2.rgbGreen, 255 - Value);
                     P2.rgbBlue  := Sub(P2.rgbBlue, 255 - Value);
                    End
                   Else
                    Begin
                     P2.rgbRed   := Add(P2.rgbRed, Value - 255);
                     P2.rgbGreen := Add(P2.rgbGreen, Value - 255);
                     P2.rgbBlue  := Add(P2.rgbBlue, Value - 255);
                    End;
                   Inc(P2);
                  End;
             Pointer(P1) := Pointer(Integer(P1) + BMP.bmWidthBytes);
            End
 Else
  MessageBox(0, 'Library error - 0x01', 'Error', MB_OK);
End;
Цитата:
можно создать битмап 24 битный и банально наш 32 битник нарисовать на нем)
Як?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 29.06.2010, 22:10   #15
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Неожиданный вопрос спрошу (может не в тему).
Рабочий стол ->Свойства->Параметры - Качество цветопередачи у вас 32 бита равно или 16? Попробуйте поменять. И посмотрите, меняется bmBitsPixel или нет.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 29.06.2010, 22:16   #16
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

32. Не меняется.

Дык як все же 24 битный Hbitmap создать?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 29.06.2010, 22:22   #17
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

А чего, CreateBitmap не нравится?

Цитата:
HBITMAP CreateBitmap(

int nWidth, // bitmap width, in pixels
int nHeight, // bitmap height, in pixels
UINT cPlanes, // number of color planes used by device
UINT cBitsPerPel, // number of bits required to identify a color
CONST VOID *lpvBits // pointer to array containing color data
);
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 29.06.2010, 22:25   #18
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Меня смущает последний пункт - если я собрался пустой создать, то куды мне тогда указатель направлять?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 29.06.2010, 22:40   #19
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
lpvBits

Points to an array of color data used to set the colors in a rectangle of pixels. Each scan line in the rectangle must be word aligned (scan lines that are not word aligned must be padded with zeros). If this parameter is NULL, the new bitmap is undefined.
Т.е вроде в никуда (нулём его).

Вот так я пустой битмап делал на WinApi:
Код:
invoke	CreateBitmap, [MainLevel.SizeFieldX], [MainLevel.SizeFieldY], 1, [colorBit], 00h
mov	[hBitmapAll], eax
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 29.06.2010, 22:43   #20
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Благодарю, пойду практиковаться.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт 32-bit dll в 64-bit valchakov Общие вопросы Delphi 8 25.12.2009 15:18
Как узнать handle окна имея handle обного из его компонентов SeRhy Win Api 2 18.10.2009 19:31
Vista Home Basic 64-bit NIKITUS Windows 4 31.03.2009 18:44
Как имея handle окна узнать handle edit-a который находится в етом окне SeRhy Общие вопросы Delphi 1 20.07.2008 13:48