Страница 3 из 3
Картинка из буфера DIB
Добавлено: 28 Январь 2020, 12:13
Игорь Столяров
Дед Пахом писал(а): 28 Январь 2020, 11:06
Из памяти: Prop:ImageBits
Да ! Это то, что и хотелось (теперь уже мечталось). Но как-то оно странно работает.
Если загрузить в IMAGE картинку GIF, то Prop:ImageBits вернёт содержание файла GIF. OK !
Но если загрузить в IMAGE картинку BMP, то Prop:ImageBits ничего не возвращает.
Так, что даже негде посмотреть, какой именно формат Bitmap нужно подготовить для Prop:ImageBits ...

Картинка из буфера DIB
Добавлено: 28 Январь 2020, 12:28
Дед Пахом
Игорь Столяров писал(а): 28 Январь 2020, 12:13
какой именно формат Bitmap нужно подготовить для Prop:ImageBits
Если BMP файл загрузить в строку, а строку в ImageBits, то IMAGE покажет картинку.
Картинка из буфера DIB
Добавлено: 28 Январь 2020, 12:35
Игорь Столяров
Да. Я поэтому и написал, что нужно формировать в памяти полноценный BMP:
Игорь Столяров писал(а): 27 Январь 2020, 22:15
Задача трансформации 24-битного bitmap в 32-битный DIB с заголовком в памяти пока для меня нерешаема.
Картинка из буфера DIB
Добавлено: 28 Январь 2020, 12:44
Constantine
Дед Пахом писал(а): 28 Январь 2020, 12:28
Если BMP файл загрузить в строку, а строку в ImageBits, то IMAGE покажет картинку.
Аналогично, если правильный DIB загрузить в строку... Нужно только правильно посчитать размер...
Картинка из буфера DIB
Добавлено: 28 Январь 2020, 13:18
kreator
Игорь Столяров писал(а): 28 Январь 2020, 12:13
Так, что даже негде посмотреть, какой именно формат Bitmap нужно подготовить для Prop:ImageBits ...
На крайняк есть у меня формирование этого BitMap. Если надо, могу выложить. Не ахти что.
Картинка из буфера DIB
Добавлено: 28 Январь 2020, 14:07
vic7tar
Игорь Столяров писал(а): 27 Январь 2020, 9:51
Внешняя DLL формирует буфер с картинкой в обычном DIB формате
Зачем всех вводить в заблуждение, в буфере сидит только Bitmap (битовая карта, битовый массив, битовый вектор или как хочется).
Картинка из буфера DIB
Добавлено: 28 Январь 2020, 14:25
Constantine
Гм... Вообще-то DIB - это Device Independent Bitmap. Любые изображения Windows понимает только так...
Картинка из буфера DIB
Добавлено: 28 Январь 2020, 15:43
Игорь Столяров
vic7tar писал(а): 28 Январь 2020, 14:07
в буфере сидит только Bitmap (битовая карта, битовый массив, битовый вектор или как хочется).
Сам запутался с этими сложностями перевода. Здесь ведь как в той деревне, где всех звали Буратино …
DLL формирует bitmap, BMP - Microsoft Bitmap format, DIB - Device Independent Bitmap …

Картинка из буфера DIB
Добавлено: 28 Январь 2020, 15:54
Constantine
BMP = BITMAPFILEHEADER + BITMAPINFOHEADER + пиксели. Расширение файла - *.BMP.
DIB = BITMAPINFOHEADER + пиксели. Если записать на диск, расширение файла будет - *.DIB.
Если на пальцах, все изображения - bmp, png, wmf и т.п. в итоге превращаются в DIB.
Картинка из буфера DIB
Добавлено: 29 Январь 2020, 9:33
Игорь Столяров
Constantine писал(а): 28 Январь 2020, 15:54
BMP = BITMAPFILEHEADER + BITMAPINFOHEADER + пиксели. Расширение файла - *.BMP.
Спасибо за помощь, всё сделал. Отчёты без записи картинок в файлы на диск - просто летают.

Код в первом сообщении - абсолютно корректный, нужно было только научиться трансформировать Bitmap в BMP.
Но больше работать с картинками в памяти - ни в жись !

Картинка из буфера DIB
Добавлено: 29 Январь 2020, 9:37
Constantine
Пожалуйста!
Но и DIB из DC показать напрямую тоже можно...

Удачи!