Главная страница
    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.46 MB
Время: 0.049 c
6-1074157516
Dennis S
2004-01-15 12:05
2004.04.04
Как узнать скорость входящего трафика в Локальной сети?


7-1075073038
Slash_from_Ryazan
2004-01-26 02:23
2004.04.04
Как узнать Имя пользователя в Виндовс


11-1058260237
anonymous
2003-07-15 13:10
2004.04.04
Как создать форму которая имеется в списке available forms ?


14-1078491385
Ш-К
2004-03-05 15:56
2004.04.04
XML


14-1079074549
Rentgen
2004-03-12 09:55
2004.04.04
(2*Pi*R*R)/Z*R...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский