Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка текстуры, без TBitmap 
:(
    Опции темы
Alexeis
Дата 9.3.2006, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



В смысле указатель на карту битов который и будет pByteArray
Добавлено @ 12:29
Точнее это указатель на двумерный массив хранящий последовательно все строки картинки.
если размер картинки заранее известен то это будет что-то
вроде

trgb = packed record
b,g,r : byte;
end;
Var
b : ^array[1..height, 1..Width*3] of Byte;
или
b : ^array[1..height, 1..Width] of TRGB;
Добавлено @ 12:30
Если нет то смещение на каждую новую строку прийдется искать вручную


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DragonFire
Дата 9.3.2006, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



А как получить карту битов? где присваивать это b ??


--------------------
PM MAIL ICQ   Вверх
Alexeis
Дата 9.3.2006, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Адресс этой карты хранится в DS.dsBm.bmBits


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 9.3.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



LPVOID lpvBits, // address of array for bitmap bits


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Alexeis
Дата 9.3.2006, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Все эти операции и многие другие, кстати, можно посмотреть
в реализации TBITMAP - в конечном итоге он ведь оперирует средствами Windows - я как раз так и делаю.



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DragonFire
Дата 9.3.2006, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Непаномаю...
как связать DS.dsBm.bmBits и это:
Цитата(alexeis1 @ 9.3.2006, 12:22 Найти цитируемый пост)
В смысле указатель на карту битов который и будет pByteArray
Добавлено @ 12:29
Точнее это указатель на двумерный массив хранящий последовательно все строки картинки.
если размер картинки заранее известен то это будет что-то
вроде

trgb = packed record
b,g,r : byte;
end;
Var
b : ^array[1..height, 1..Width*3] of Byte;
или
b : ^array[1..height, 1..Width] of TRGB;
Добавлено @ 12:30
Если нет то смещение на каждую новую строку прийдется искать вручную




--------------------
PM MAIL ICQ   Вверх
Alexeis
Дата 9.3.2006, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Romikgy, эта функция, как оказалось, делает не совсем то что надо.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 9.3.2006, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(alexeis1 @ 9.3.2006, 12:22 Найти цитируемый пост)
эта функция,

какая эта?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Guedda
Дата 9.3.2006, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Цитата(Romikgy @ 9.3.2006, 14:18)
LPVOID lpvBits, // address of array for bitmap bits

Эта


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Alexeis
Дата 9.3.2006, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



b := DS.dsBm.bmBits
Добавлено @ 13:32
Sorry опять ошибочка объявлять придется примерно так
Код

 type
   arrtype = array[1..100,1..100] of byte;

var
  ar : ^arrtype;


Добавлено @ 13:35
Romikgy,
я имел ввиду функцию
Код

int GetDIBits(
  HDC hdc,          // handle to DC
  HBITMAP hbmp,      // handle to bitmap
  UINT uStartScan,  // first scan line to set
  UINT cScanLines,  // number of scan lines to copy
  LPVOID lpvBits,    // array for bitmap bits
  LPBITMAPINFO lpbi, // bitmap data buffer
  UINT uUsage        // RGB or palette index
);

или я неправ smile


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DragonFire
Дата 9.3.2006, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



Ну вот я написал:
Код

function ReadBitmap(const FileName : String;
                    var sWidth, tHeight: GLsizei):pByteArray;
type arrtype = array[1..100,1..100] of byte;
var
 h : HBITMAP;
 DS: TDIBSection;
 Bytes,i,j: Integer;
 b:^arrtype;
begin
  h:=LoadImage(0,PCHAR(FileName),IMAGE_BITMAP,0,0,LR_DEFAULTSIZE or LR_LOADFROMFILE);
  DS.dsbmih.biSize := 0;
  FillChar(DS, SizeOf(DS), 0);
  Bytes := GetObject(h, SizeOf(DS), @DS);
  sWidth:=ds.dsBm.bmWidth;
  tHeight:=ds.dsBm.bmHeight;
  b:=DS.dsBm.bmBits;
  result:=b;
end;


Тока ошибка на result:=b; Что тут надо писать? Опять я что-то пропустил из объяснений?


--------------------
PM MAIL ICQ   Вверх
Alexeis
Дата 9.3.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



я не знаю как здесь объявлен pByteArray
или он стандартый smile


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
DragonFire
Дата 9.3.2006, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 14.8.2005
Где: Москва

Репутация: нет
Всего: 9



PByteArray = ^TByteArray;
TByteArray = array[0..32767] of Byte;


--------------------
PM MAIL ICQ   Вверх
Alexeis
Дата 9.3.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



если стандартный и не требуется разбиение на строки
то вообще просто
result := DS.dsBm.bmBits


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 9.3.2006, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Можно так попробывать
result:=pByteArray(b);


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Страницы: (6) Все « Первая ... 2 3 [4] 5 6 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0819 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.