Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "Media";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.031 c
8-1069859027
TitanDesign
2003-11-26 18:03
2004.04.04
Изменение картинки при наведении...


1-1079361777
RomeoGolf
2004-03-15 17:42
2004.04.04
Canvas.ClipRect


3-1078806569
Романов Р.В.
2004-03-09 07:29
2004.04.04
Обновление данных в SQL запросе


14-1078671299
ИМХО
2004-03-07 17:54
2004.04.04
По поводу Интернета как такового


4-1074618002
fadeyev
2004-01-20 20:00
2004.04.04
Непростое MDI-приложение





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский