Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Image pointer and buffer size / 12 сообщений из 12, страница 1 из 1
06.03.2020, 19:45
    #39935300
vlkc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
Здравствуйте, нужна помощь. 

имею TBitmap картинку

Надо получить:

pBuffer - Pointer to memory buffer which contain image file data
bufferSize - size of memory buffer in bytes


Как?
...
Рейтинг: 0 / 0
06.03.2020, 20:11
    #39935303
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
vlkc,

размеры - в Height & Width. А указатель на начало - ScanLine[0]

А зачем тебе?
...
Рейтинг: 0 / 0
06.03.2020, 20:22
    #39935305
vlkc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
Типо:

Bitmap1.ScanLine[0]

и

Bitmap1.Width * Bitmap1.Height

?
...
Рейтинг: 0 / 0
06.03.2020, 20:23
    #39935306
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
vlkc,

а размер пикселя - не интересен, илу у тебя ч/б?
...
Рейтинг: 0 / 0
06.03.2020, 20:29
    #39935307
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
ъъъъъ

А указатель на начало - ScanLine[0]

Это указатель на конец. На начало ScanLine[Height-1]
...
Рейтинг: 0 / 0
06.03.2020, 20:32
    #39935309
ъъъъъ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
Соколинский Борис,

это откуда смотреть и что с этим делать.
...
Рейтинг: 0 / 0
06.03.2020, 20:42
    #39935313
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
ъъъъъ
это откуда смотреть и что с этим делать.
С начала, разумеется.
Строки в битмапах хранятся bottom-up.
...
Рейтинг: 0 / 0
06.03.2020, 22:37
    #39935323
vlkc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
Не понатно как передать данны в функцию. Тоесть как передать картинку в

function ReadFromMemFile(hEngine: TENGINE; pBuffer: Pointer; bufferSize: Integer): TRESULT;
...
Рейтинг: 0 / 0
06.03.2020, 22:41
    #39935325
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
vlkc,
BufferSize для битмапа вычисляется как
Код: pascal
1.
((Width*BPP+31) shr 5 shl 2)*Height; //BPP - бит/пиксель
...
Рейтинг: 0 / 0
07.03.2020, 04:43
    #39935355
MBo
MBo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
Строки в битмапах хранятся bottom-up.

Не обязательно. В большинстве случаев - да, но может быть и наоборот - о направлении
свидетельствует знак поля biHeight в инфохедере.

В принципе, можно всё, что нужно, вычислить через абсолютную величину и знак разности адресов двух соседних строк Scanline (если строк больше одной)
...
Рейтинг: 0 / 0
07.03.2020, 06:51
    #39935358
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
vlkc
Не понатно как передать данны в функцию. Тоесть как передать картинку в

function ReadFromMemFile(hEngine: TENGINE; pBuffer: Pointer; bufferSize: Integer): TRESULT;


В описании функции сказано, на какое именно содержимое буфера она расчитывает?
Судя по названию и первому сообщению, она требует весь битмап, а не только массив пикселей, тогда можно загрузить bmp в MemoryStream из файла (или сохранить туда), а в функцию передать его Memory и Size
...
Рейтинг: 0 / 0
07.03.2020, 12:15
    #39935384
vlkc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Image pointer and buffer size
x1ca4064
vlkc
Не понатно как передать данны в функцию. Тоесть как передать картинку в

function ReadFromMemFile(hEngine: TENGINE; pBuffer: Pointer; bufferSize: Integer): TRESULT;


В описании функции сказано, на какое именно содержимое буфера она расчитывает?
Судя по названию и первому сообщению, она требует весь битмап, а не только массив пикселей, тогда можно загрузить bmp в MemoryStream из файла (или сохранить туда), а в функцию передать его Memory и Size


Спасибо!!!
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Image pointer and buffer size / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]