|
|
|
Преобразоване 24 бит битмап
|
|||
|---|---|---|---|
|
#18+
Здесь C ув. Tors ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 19:30 |
|
||
|
Преобразоване 24 бит битмап
|
|||
|---|---|---|---|
|
#18+
дай догадаюсь ? пишешь для СМ 1420 векторного дисплея на краснодарской версии С ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2005, 01:09 |
|
||
|
Преобразоване 24 бит битмап
|
|||
|---|---|---|---|
|
#18+
автордай догадаюсь ? пишешь для СМ 1420 векторного дисплея на краснодарской версии С ? Не пишу на 5 билдере для обныкновенного дисплея для рентгенаппарта он выдает чернобелую картинку но 24 битную и надо её в 8 битную(256 градаций ссерого) тады она будет в три раза меньше занимать на диске - а качество тоже бут(я надеюсь) C ув. Tors ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2005, 10:41 |
|
||
|
Преобразоване 24 бит битмап
|
|||
|---|---|---|---|
|
#18+
tors автордай догадаюсь ? пишешь для СМ 1420 векторного дисплея на краснодарской версии С ? Не пишу на 5 билдере для обныкновенного дисплея для рентгенаппарта он выдает чернобелую картинку но 24 битную и надо её в 8 битную(256 градаций ссерого) тады она будет в три раза меньше занимать на диске - а качество тоже бут(я надеюсь) C ув. Tors Берешь делаешь палитру из 256 градаций серого. Первый индекс в палитре - (0,0,0), второй - (1,1,1), последний - (256,256,256). Потом скнируешь полноцвеный битмар, и каждый писель конвертируешь в индекс в этой палитре. Надо обратить внимание, что среднее арифметическое красной, синей и зеленой составляющей подойдет плохо - глаз очень чувствителен к зеленому, менее чувствителен к красному и очень слабо реагирует на синий, так что надо эти компоненты брать в пропорции (если не изменяет память) Red - две доли, Green - семь долей, Blue - одна доля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2005, 11:12 |
|
||
|
Преобразоване 24 бит битмап
|
|||
|---|---|---|---|
|
#18+
Вот еще одна формула Brightness = 0.3*Red + 0.59*Green + 0.11*Blue Для хранения картинок я бы посоветовал использовать формат PNG. Или более модный вариант - j2k (JPEG2000) со сжатием lossless. Не знаю, есть ли исходники С++ на свободном доступе, но для Java - мне удалось скачать приличный кодек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2005, 11:27 |
|
||
|
Преобразоване 24 бит битмап
|
|||
|---|---|---|---|
|
#18+
Для PNG есть хорошая бесплатная компонента - pngimage143 c torry.net, принцип работы - как с TJPEGImage: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2005, 14:02 |
|
||
|
Преобразоване 24 бит битмап
|
|||
|---|---|---|---|
|
#18+
Написал такой код: struct TRGB { BYTE b,g,r; }; TRGB *ptr; TRGB px; const int w=InBmp->Width; const int h=InBmp->Height; OutBmp=new Graphics::TBitmap(); OutBmp->PixelFormat=pf8bit; OutBmp->Width=w; OutBmp->Height=h; BYTE **mas; mas = new BYTE *[w]; BYTE tmp; for(int i=0;i<w;i++) { mas =new BYTE[h]; } for(int y=0;y<h;y++) { ptr=(TRGB *)InBmp->ScanLine[y]; for(int x=0;x<w;x++) { px=ptr[x]; tmp=(px.r+px.g+px.b)/3; mas[x][y]=tmp; } } typedef struct { TLogPalette lpal; TPaletteEntry dummy[256]; } LogPal; LogPal GrayPal; GrayPal.lpal.palVersion = 0x300; GrayPal.lpal.palNumEntries = 256; //Заполняем палетту серым веществом PALETTEENTRY *pe=GrayPal.lpal.palPalEntry; for(int i=0; i < 256; i++) { pe.peRed=i; pe.peGreen=i; pe.peBlue=i; pe.peFlags=0; } //Прицепляем патетту к битмапу OutBmp->Palette=CreatePalette(&GrayPal.lpal); // Получаем адрес на массив пикселов DIB секции битмапа ::BITMAP bmp = { 0 }; GetObject(OutBmp->Handle,sizeof(::BITMAP),&bmp); //копируем из своего массива байтов в битмап memcpy(bmp.bmBits,mas,w*h); OutImage->Picture->Bitmap->Assign(OutBmp); OutBmp->SaveToFile("c:\\1.bmp"); for(int x=0;x<w;x++) { delete mas[x]; } delete [] *mas; Фигня получается C ув. Tors ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2005, 14:08 |
|
||
|
Преобразоване 24 бит битмап
|
|||
|---|---|---|---|
|
#18+
Исходный битмап C ув. Tors ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2005, 14:11 |
|
||
|
Преобразоване 24 бит битмап
|
|||
|---|---|---|---|
|
#18+
То шо получается C ув. Tors ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2005, 14:20 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=378&tid=2032216]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 325ms |

| 0 / 0 |
