Graphics::TBitmap* и ScanLine
Код:
...
Graphics::TBitmap* mask[5]; // массив указателей на картнки
...
mask[0]= new Graphics::TBitmap;
mask[1]= new Graphics::TBitmap;
mask[2]= new Graphics::TBitmap;
mask[3]= new Graphics::TBitmap;
mask[4]= new Graphics::TBitmap;
mask[0]->LoadFromFile("1.bmp");
mask[1]->LoadFromFile("2.bmp");
mask[2]->LoadFromFile("3.bmp");
mask[3]->LoadFromFile("4.bmp");
mask[4]->LoadFromFile("5.bmp");
...
Byte *ptr_screen=NULL;
Byte *ptr_mask=NULL;
ptr_screen= (Byte *)mask[0]->ScanLine[0];
ptr_mask = (Byte *)mask[1]->ScanLine[0];
...
Graphics::TBitmap* mask[5]; // массив указателей на картнки
...
mask[0]= new Graphics::TBitmap;
mask[1]= new Graphics::TBitmap;
mask[2]= new Graphics::TBitmap;
mask[3]= new Graphics::TBitmap;
mask[4]= new Graphics::TBitmap;
mask[0]->LoadFromFile("1.bmp");
mask[1]->LoadFromFile("2.bmp");
mask[2]->LoadFromFile("3.bmp");
mask[3]->LoadFromFile("4.bmp");
mask[4]->LoadFromFile("5.bmp");
...
Byte *ptr_screen=NULL;
Byte *ptr_mask=NULL;
ptr_screen= (Byte *)mask[0]->ScanLine[0];
ptr_mask = (Byte *)mask[1]->ScanLine[0];
...
Вообщем вся лажа в том, что последняя строчка всегда выдает \0. Т.е. функция не считывает строчку из картинки. Не подскажите из-за чего такая лажа?
Хотя mask[0]->ScanLine[0] вот эта строчка отменно работает
-----
Воде разобрался:
Вообщем если ширина картинки маленькая, около 100-150 пикселей, то данная функция работать не хочет =(
Код:
char **Line = new char*[300];
int i=0;
for(i = 0; i<300; i++)
Line = (char*)mask[0]->ScanLine;
int i=0;
for(i = 0; i<300; i++)
Line = (char*)mask[0]->ScanLine;
Народ, почему первые 60 строк нормально читаются, потом 100 строк \0
а потом опять нормально?
Цитата:
Народ, почему первые 60 строк нормально читаются, потом 100 строк \0, а потом опять нормально?
Что содержится в файлах - не знаю, посему могу предположить следующее.
Данные читаются нормально. Просто в этих ста строках первым элементом строки является пиксель с нулевым цветом - соответственно, в текстовом представлении эта последовательность байтов отображается как пустая строка.
Индексируйте объект ScanLine побайтно.
Формат пиксела 24 бита... Char же 8 бит... Из-за этого фигня какая-то походу.
Поставил формат картинки в 8бит. вроде помогло но не до конЦа.... Всеравно возникают небольшие глюки. Но уже попровимые.
Битовый не удобен по причине сравнивать их не очень удобно =).