Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Чудеса с палитрой   Найти похожие ветки 

 
Bucha Victor   (2003-11-29 17:34) [0]

Добрый день. Столкнулся с такой проблемой. При изменении палитры Bitmap->Palette=newpal
меняются сами элементы получаемые с помощью ScanLine.
Что за грабли может кто сталкивался???? Работаю под Builder5 c++.
Image1 и Image2-содержат одну и тужу 8BIT картинку
Вызываю функцию Compare для проверки элементв все ОК,
после изменения палитры ChangePalette() cбой. Пробовал создавать палитру и другими способами в том числе
CreatePalette -все равно тот же результат.

//Изменение палитры
void ChangePalette()
{
HPALETTE hpal=CopyPalette(Image2->Picture->Bitmap->Palette);
PALETTEENTRY mypal[256];
DeleteObject(Image2->Picture->Bitmap->ReleasePalette());
GetPaletteEntries(hpal,0,255,mypal);
    for (int i=0;i<256;i++)
   {
     mypal[i].peRed=random(255);
     mypal[i].peGreen= random(255);;
     mypal[i].peBlue =random(255);;
   }
SetPaletteEntries(hpal,0,255,mypal);
Image2->Picture->Bitmap->Palette=hpal;
}

void Compaare();
{
int mwidth=Image1->Picture->Bitmap->Width;
int mheigh=Image1->Picture->Bitmap->Height;
byte *ptr1,*ptr2;
for (int i=0;i<mheigh;i++)
       {
       ptr1=(byte*)Image1->Picture->Bitmap->ScanLine[i];
       ptr2=(byte*)Image2->Picture->Bitmap->ScanLine[i];
       for (int j=0;j<mwidth;j++)
 {
               if (ptr1[j]!= ptr2[j])
                  {
                  MessageBox(Application->Handle,AnsiString(AnsiString("Целостность нарушена")+"(" +AnsiString(i)+","+AnsiString(j)+")   "+AnsiString(ptr1[j])+" - "+AnsiString(ptr2[j])).c_str(),"Внимание",MB_OK);
                  return;
                  }
               }//for (int i=0;i<mheigh;i++)
       }//for (int i=0;i<mheigh;i++)
MessageBox(Application->Handle,"все нормально","Внимание",MB_OK);
}


 
miek ©   (2003-11-30 14:58) [1]

Кстати, а она вообще в этом битмапе есть, палитра-то? Какой формат его, чем создан?


 
Bucha Victor   (2003-11-30 19:54) [2]

Да, конечно есть. Можно и не грузить файл,а создавать 8bit BITMAp со стандартгой палитрой при попытке заменить та же фигня.


 
miek ©   (2003-12-01 23:33) [3]

Ну так меняй не через API, а руками. Делов-то. И быстрее будет.


 
Bucha Victor   (2003-12-02 00:32) [4]

например????



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.049 c
1-1079210877
AlexT
2004-03-13 23:47
2004.04.04
Stream read error


7-1074151506
alex31
2004-01-15 10:25
2004.04.04
алгоритм поиска файлов в файловой системе FAT32


3-1078410609
IGORYOK
2004-03-04 17:30
2004.04.04
Оптимизация или что быстрее стринглист или проход по базе


7-1074623316
bux
2004-01-20 21:28
2004.04.04
два СОМ-порта


1-1079526251
roadstar
2004-03-17 15:24
2004.04.04
Скорость...