www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1998/02/13/07:40:47

Date: Fri, 13 Feb 1998 14:32:31 -0200
Message-Id: <199802131632.OAA038.30@ns1.bspu.unibel.by>
To: James W Sager Iii <sager+@andrew.cmu.edu>
From: Alexander Bokovoy <bokovoy AT bspu DOT ac DOT by>
Cc: DJGPP mailing list <djgpp AT delorie DOT com>
Subject: Re: Allegro BMP Color Depth Conversion
In-Reply-To: <Yot2BBO00WBO01rmY0@andrew.cmu.edu>
References: <D1FB30BBA491D1118E6D006097BCAE390A4852 AT Probe-nt-2a DOT Probe DOT co DOT uk> <Yot2BBO00WBO01rmY0 AT andrew DOT cmu DOT edu>
MIME-Version: 1.0

--RnJpLCAxMyBGZWIgMTk5OCAxNDozMjo1MSArMDIwMA==
Content-Type: text/plain


On Fri, 13 Feb 1998 05:41:17 -0500 James W Sager Iii <sager+@andrew.cmu.edu> wrote:

> Hmmm, is there a way to reduce 3, 24 mil color images into a 256k palette?
> I'm have a solution that involves external paint programs, but I would
> like to optimize the three images upon loading... its no biggie. 
Do you know about "octree quantization"? This method was described Gervautz, M. 
and W. Purgathofer in "A Simple Method for Color Quantization: Octree
Quantization" in New Trends in Computer Graphics. New York, NY:
Springer-Verlag, 1988.
Attached zip-file contains an article by Dean Clark (71160 DOT 2426 AT compuserve DOT com)
about "Color Quantization using Octrees" and several C functions dealing
with octrees. May be it would be useful.

Regards,
Alexander Bokovoy, <bokovoy AT bspu DOT unibel DOT by>
---== The Soft Age coming soon ==---


--RnJpLCAxMyBGZWIgMTk5OCAxNDozMjo1MSArMDIwMA==
Content-Type: application/x-uuencode; name="Mapcolor.zip"
Content-Disposition: attachment;
 filename="Mapcolor.zip"
Content-Transfer-Encoding: 7bit

begin 666 Mapcolor.zip
M4$L#!!0````(`,.*B"-<7$LBFQD```%'```,````34%00T],3U(N5%A4I5QM
M<QNYD?ZN*OT'E*XN)NTA+<E>Q[%6OI-EK]>)7W26LK[4GBL%SH`DSC,`%\"(
MYN;\WP_=#6``DG8VB38E4S-`H[O1KP_`7.I6&_9?/5=._LJ=U(KU5JH%>U<[
M(X0]/'C#5RMX</IP,I..R8XOA&5.L\?X]XJWPCD8^%QPQ2Y;;C[1YXIQMC)Z
M87C7"7.?*]YNK&/KI6:-N!6M7EGF7ZZ6LK:,JP9)PTI^P5;6R(RM6 DOT VIS AT 2K
MM7*\=J)AW+'?GYP\.IZ>/CQ]])^U[E:]%>963/W'J>>WKY=,S_TZ?N!">UZ]
M3%)9V0C/$`YWPC#IUV2-M+413L"21G_V#*`&_&Q83JI>]Y89P=M)*^>">:Z5
MLU-VL_2SU]I\LIZSFOOE*]9I+YN?Z):".=GY)P5-OYKQ0K3:>C)*]XOEE%U&
M7J(6*L\G6W'C9-VWW%0X9]ZW+1`NR4W9AYQK3[HWMZ)AK51>XMF&66>D0G4Z
MO1">*\,ZKC;L5AC_<JF- AT R%<+I:.)GV-HNW-G->>*-G%K%?U$I3J196>WKSE
M+HV9L AT O5L'5)AQ?*Y%+-])I4W&H3R2)O4C7R5C8];X>=H5%3=GAPXV40J!+.
M5-_-O$2PS7R#UEAP/JP7I[]3`K;<#W1+X]>7RDM2?Q(.)9E)9RMFA.U;!]SX
MMT?.]&'U(S;2)MC_N&)KY,.3$8+--DY8_]I3%[Q>LKD?:$13L85_"QZ@&C9K
M/:&5\:R93>!GC&(TH@$S%PVPA=/Q+5O)SZ(%JP5;`C4(=<:L7^T'N>C]O),I
M^["4K7\GNY7_QW/K):[%ROD98->@"B#G/XO/*Z&LO!45FVFWA+%.F,[2!H#]
M@;PKO18&F>V\*)LI>^5)\4\"?*35:->75W]F2\^ZH+&>XT[?"G;Z$)4'(QKN
MN)=+]YX,Z$&@J>T1AM2RY*99<]0D=W?\2C,OBB?;:&:U9U(UN%TS,<@P/3RX
M\,N"(^G.<[KEME[<HQ".)@[(T<:U6G_J5PR?C$G%P87]_UIA,R5%=V;2,2-^
MZ:7!\-%N&&=@IBWM.%L)$V0A^8">*)ZP6P[;+E4C/J,:<7E0DQ'-?3")^V AT B
M;/3^Y;,QC;:D&%`4&0+1X`Y5%"BLM)51VD;:5<LWHOF&L9Q.V;/>45A"`L AT 2
MS$:Y!`8`LG^KZ=GI=X^B<X;@^Y6%@#7P6XAW4W;9"F[:344"+'G;"K6(7F=%
M*VIBP^"2V2)@+/`"4PO07'+53'.')V<+F^Y$O53REU[0S"[D)\\I$5A+MXS9
MBO38B)5_!$%"E5F+S(1"N4,CFK(K;IUGVO84Y)X__Z/GYQ96O_7L-,RM=8CS
M5I"FC]Z(1G(UN>P=V\VGU1&$XPOE/.M_,OU"&#:Z]@P)C&`G?_C#PS'M>[=A
M&/H]0T=@3E=Z!5E`.C^[76C_8=D=L=$?^W8#T[X;3]DS<.E,'VM0V%P:+T%(
ML9YAO_H5[UOVHZ AT _^24=QH`E!"R#E!X?VRE[I4+L(`XJ]NI.V[*5\4(JQXXT
M5@/LEU(N-*JE-$T('=9-C*AA`ND]'SZP";'\>N4?\I8]AYAQ[4Q?N]Y`$7%A
M&803Q3NPAU4KR2M88``XA#U<\PV#!V?D&M(/P@"J="/8DEL&#J^#===+V39&
M*/+20&F$%8>##`$9B*S6,]S`VS&5!TLI##=^>@T9"5BUD55:M[=0"BTQO*M:
MKJ*'U[W!<-((B+'18SU#1D25VJ`!(!NR&WO_\EG0G'];D[2L[F<B2,<_2TNE
MC:3H#GFGR"Q3]FK.-KK'Z(V<#32!$&X4)EF,<;S5:C'0KG#J0KB AT  DOT -O/8)(M
M`LJ#*7M.!'!>&`.!8>`15L&_R%$ZB*NZ$W:+KJ>DR>SH.<21$`0](W=N!5MH
MQTY/'Z89%8J,V07(K[2U$CR8))0*`JWIQ23\#?$``XE?PI,`P2WL1`AK:3?(
M2SB:U+#'A=@/R7J,UD.9!Z,3#3($_T'ZT;A_-(/<L05WW!Y,KS+&INP%B&7$
M`B-\B+4YX]IX`BL=DB,GVV8K+;T0AA;,+2@(&D AT T7L[>,]B2]K)R*ZR8\9<2
M'MD5&>A0=J$\EC1."P:_VN+0%;.P5`ABA5H'K1>]W.HL&\$H0;K84TVA5REP
M(_$+L#\$"`S^1(98G+*?7EY`'P+B6R_49Z(/*3RX#BZ]10+&11G!=N9S64M8
M$&S/4R15/PC)Q#EA,!LBR_ AT L DOT KV7FAY"W0!E/$R"S^"8C8!B#$MV4$D9+H*5
M9=M9&.1WT\.#ZWZU AT HX"W';-/7=.0ZL#0;[T_;G179KHAX2=R7>.),(@;N5"
M22\P4,2>C]A#VQ_!@]^G[2$*(%`5;/PX;C"1'1/=7$^>W,GQR?GY=ZAXK/$6
M4 AT 7&L6,!?T7*%9OKMM5K"K(<LMW20/>$SC>9/$7[__F[CU-V03(K\3EL/87T
MK86/3_S"#W#AT"4(UNBU&AQZ[P(//NZ*@3J%::W@>Y2VD AT K=TF::%I]Y[=I-
M'ABL$RLT*LX4AYR1_,A/F!09E,<J@*UUWS;@V%!9 AT 8]GY9-J/$VHD7%_>DRY
M0WP<-@8BGC/\5AA+.@_R<PMI_U;JWK8;[,-Z:P748^_%7*HX]LKH6EC(V"X$
MOB9:+`E&[`!WU8ZM0=)M&ZJK_'K8_/E_C5[;SWY<WRF;1Z=0)X*-N!`B"[F2
M.G8">BOXG(H".6SQE-UHS')E<`JKD#5H+%"A?0`<`5H9'+W0GAUIQ]6 AT KZ[W
MPN+:35_3NE9W8JG7K!,&._#8A%[2"E AT Z0%F+#1)A`JE)'Z6")O$>9M AT E];XK
M_X]RXT'J6G<SJ?S2Z-<I<,/6PA:DCB?B#T'0-+\1K7`09F/WH<2ZG!U\,RZ1
M*9*0$"!DQ$I`283Y)6D'81MDC@*<E5!#;RL]IA=T@-)0*(')#B(XKL\L[`9O
ML?.?LA_`V``XL4YP-,%9+]LF=`0A'2>K0V;P7=L&"R4 DOT L AT U-Q0'MI^PZ*.^=
M:#?0^JMD"WDRY+=0W'RNA6ALZ+4,6!B-`3WUM$1H:(@*MK)N&?RWF!+(1@/(
MK+=BEM^252&H9;"%Z80GMD$G]6P7#KWEYSK&K)#$,;K+#K5C^\Z/F;(+R/_S
MWJ!%!MUW0KF*=5RB#D&YW!B^04:E^H38DR4D`%6'=1DR@"(4N>L1F6-2]P(@
M&06XH%BA=H-*=BL'W9N]E4/.#J8/*W^%5-ZVK-%07U^PUR#MY#7Q2O`F/*;H
M8#.FY9QATE-W7`@AJ!'P"MH-A/*,X`&-Q$!+N AT 036+DM#>/&;^[`UC<-H3V8
M3M."H+C0!?.0O+`ET,$(L[T'NZ7^FGH:*BD&4B AT -Q@GRWV:(+,EU84R(!U@]
MVGZ&6"^!4M+6W#1Y.-BB'FOY++J&VACQ,ZH6(,(AJUG`0</7Z^THC34NA:P6
M7,`$DC^0_57P,N@@[A50H>4K!"!@:V)4PQ7+4B&E=H2TL"$9WB&YACBS3J\8
M..EDPN>`S*+HV.T.5,AWP60I6:PY-,`++M7T\.`OND>+!FJZ=X"LYCEW?SY_
M<GAP,F7X<UUD<]J#4-&E+.CR:C5U*V`QIX'*J_ENA-H*)6%Z'K.&X7.I4MJM
MMHT0%GH0%OJP%'GQ@;6(M#!?VB784/($6CQ4"&4\'HQ,-$50GK+W8JN\`=R1
MKXI1P9^D(3AP92!8QR4H-$\/#UX!5`HQ;#C<*&":PX/7TL)+BU AT QZ/UFK1,"
M AT NA2H,#S\MQ`4>3YIGHMK#I4:O_;(Q9C:R-GH@&<!?;R9K!&3W AT HTX?=MAB"
MHL=&LKN1)4$!4DG`$]I-B$2/AD[E!<6G6`G%$([@@NY5ZF>'_2?U(I!I\ZR)
M?CVPRIGMNS@;I(`LS!4>!&2"$AXB;%EH5Q1"@6P662',0EW)S8:"[D[`E8I=
MXL=WM7OKW_Z&Z)JR4X0:I0E1-N1+@7PV.O1AR>MC7`M_#@F3MWCN`&#$4BZ6
M><X:=@?,-Q%/L2>4Q[@50PL!S&'IWG>Q88 AT M+BB6\&$<0?`R;AP!H%C*`)"5
M8*[#@W<J<UA@&(HB5[$WGHLKPCYO"'"GRB"P1E8&73;44+9,\B!7QDM$;77O
M5GVTBH"KDM["'P%Q#H`XZ,YJ:E&:`@N8#"X;LTIP4$&H:D#;/`FB%6)!`GX3
M<P2-E!BO4,YL0L$Z[Q7M9W+!;0*8^@K51``R8#*`3W9<*3 AT VL9FQ3RDD%IT'
M'B'6*1R6:I&9U<3A\""/94760`:GAP>7[][^].+]S?22C?@MERU)"2B[T0H0
M2X#B$9Z^H->RE6Y3'?GUO:@/QL!4D^(/*6`N`?KM^,H&:'2G(RJ56HNV#8"=
MD%ADA),"DB'PG:(Z=%-&.JP=KB[_&Y?#<./(8*0"2\*G<VTZGI`'5#</=854
M`)4G&#Q"UI.)L!"J*0AZL2ZN+U^]2FMDECL3;@VG%\?(^$G%5FV/@!>>BBX%
M;R*4%HXY AT HDGM/>-</R#5(U>#P?8K9P9@&'1I6%`>C.ZKK5SEOT$)R*;BEU>
MC"LV\_0(61'<2F"XX:MP%(A'R5#6)!*?A%$A6D&)18'@HFD0*.(`[?<&LE=M
M`]@Y)"#_QR^]=(*)!&'!V2<>'$#5CT&'T,KK5&<5+1C5.P"J#_W*VWLG65H/
M&D0,$MBAH#WB#D6IV%N<.69X(--!_VK9G-]J:%TV(+%&V^F$6^K&QJ3F-BLR
MXW AT 4%S!-\`MM AT N0[$&,.#`S%CI$++&D($0[^.K3F95M+IQGA6"E-W1X9W9@\
M`4ONMF4S./X<ZEHD1\=/(T(EX4!26#LFL/L;>1?5``>.L9W=753:O<K(%MVW
M"!5W14R)Y=8KY0GRVLF:TBHSO:+$#Z82$GVXTX$'D+KSQ$(=WTC[B?$:LC>8
M1,=5N,XQT[UC#Q\<'\>*`H]/1:T5GB=R]O#QH_L/'K"KRX`#I*,>RK(9LA(1
ME62D=K<H2ELD3<!*R"#A<L(F-$ANNT;`B75"5*")4.2EE+)!93'3$3[`YW-1
MYRT,QE[4)L0X(WFJSE3=]HUXXL6O/Z%&8ILVD\YP(]O-67J7VIS4)<6G&!9R
M"_DMDQ";W)J%+J\[P9:;F9%-Q2Q<F>&@;W1 AT G`RKW:?9@!^#MZ*_0-MFXD;"
MD2 AT 33:(]/3SX0*?YL'8CYW-AA*K%?["KP&F=06##81@"@($F%I;8O`89NM!8
MHC>'#G%A=+_"=B+,RA"RE#!&M AT 67`]S&:+7(SOX%WB_PG.'6J7!&C7`DQKA=
M['%(L?/@P1/`2U:R#G>$%GC))[A("#-7V?;,Q5I8E]B-UQM0`^86CVB<I[XP
MO`D7AJ*T%5-T5`L+.H"7O9P08[RP/+9G&*H0%VN9,`:0<S#>8.ATP0$]V'8#
M]-4(YZ4"OQBV_E8,)[4!V0.\NUOAX<*,MSPD"0`MUQK2BJCA4M0%6\8L1+N!
M-F/18@"N"Y)W=,0C()O.^Y8%*$G%2QS6C^=&ZN&>#0XU@\KFNNYMO(C0R:9I
M1:GWU,IA)T=^F>,[E)Z.#%>-[MK-T60B'=VEV>POT_,6-0$V6>^5O)-.OS&;
M-WA9`G)-WGB"G0=>^5P;>JZA?TS*L\/-$U1C,$@JB$!#<)Y'U7/$G@)>$@IR
M5/2$.KN!*IWMHHD[S3X!/H$0=>YYID30A_-'.NG4.@>\2GV&RGJ(H+R%.VPX
M`8M,\=D93J<=W&Y'['K)U0)/=TT([=C=)&J\KOMN()?A25\'ID-31330RT%Q
M&@?/!"A_:.P"]`7MG([U.+;7$/KB8?/0!KJ2^(R`#]C%V!2AXUIW'[T-_'Y(
MORE2_@!)!8ITI5VX3Y`U&D,%YTG?<6S1<\.50\@&#Y'8VZTBAY)442$,]YSB
MQ2:>BV%D9S.4/&QT-.R.;]!/LYL4><E'U0EOL#;!>T.@/CX4I02<(@/)Z64'
MU0JG(A1.*EQ/1DW.GCHQF,-7*ZJ'>;BTB)%K^^@`X/`->_0P%E9T3D5IQQX>
MX'W4BL%]U.G7K]5,C_">3WZWYO#@I3"WO'>_5NS-%+/2ARF[ZLV"NZ6>0X=P
M=,&NZ0;>&ZQ<<?=W+P`]V0<W'8$"WHHUNS$8UP#5B-=!7X:R?XH#_J)!@+=_
M><*NX9;)0IC)3\*T?%'!W9W'GM%XL:?">SZ>+^+A%6JRN-H+#/Y@(#<^ZR$W
ML^?4KGGY=U9/VGA\"MJ AT JTL5762:_IT[3U&?6_><X,3:+^X9_9$KV)"+[*8O
M;.E7K AT 4!D,+!SBKVYN()-CY6J\D'8;&A\K2/T9_H=N23K<M?0<0TX/0)NRJ[
M6#IAKY>B$\.P!T_\JO$B3WX'`Q'WT\GST#:E"0^?L!_S"T/4K60S)Q.>;A@-
MT[Y[PIZ':P!%91OFQW`;H!$"K>(QRA-V0<\F`>0*1_F'!T4./#RX?Q]>G4R7
M;#)A/V*'F_KLXL2Y[`LB4(($\OO=]^\?'OR;G*M&S-F[RYN3O_[H_VX0"DU_
MN\U*P/M>P=$X0*1+;AC#RP)G>UY+Y0!2[OV_^U[C527_&O[-WH=9Z6>F=7LV
M,'=C>C&P]@-OK?"#CH=',`#FG?A'0C5RCK*^?_GLQB]`-[#"-=O'F5$Y`Y>]
M!BX(A6=_ DOT SQ AT 04+XUU2+:G96L)=^_"(W<:L/#[[$%<]P^7>U AT R@[L+`02AA9
MIY;<O]Q9_*^:9D4NHF;00+[.!1Z+A<05SD*"%%JW2,=")-]/`*1X_^<7<&3F
M0J;)H*]2&XAW?9T/BB+9'56:W8=]5[%[^0H7V AT TU)N92*G7239*2FA&-[;MP
ML0 AT _P;TB_^$,J5T/L':X.Q?16$MTHGW<Q==?U0W)Q,.][!$H9IQI9GOC[M)E
MD\<?,X(@&VQYN.)EOS(3KKW`IW+F^_*(,=``<Z.4%"QN^(/=+;#U$=@0VL_8
M#[O5LME!D$?Y9"H?HG)P+W_^6*$EWL4]!3*T![AAKP6?PSIV!+33&@-L7CX?
M8-9BU:UE[X:;0Q!("`8!`O!'`2=_ AT W&B`+-B2!C"Z<U:#^&TAG!ZF8-E1L.-
M>CQQVALR"0J`[?G>ND;JZ?+I[N-6SG:>'U'\/AHB%_Q<OGO][OVS5S?7_O/C
M\M7-^Q<OGK^XNOG1?WYT>(!>^.;B^D\_ISD?V3G[V_'GXY.*^=^G^/LA_GX,
MOT^.X?<I_GZ(OQ\??SD;%O$D1K-*C3W]T6 AT T&_\.J:N/XZ=/U7 AT 8]OK%3R]>
MC^JJ&8]&,&54CR=/335JQN/Q]]^?LO]CZ>D"GW[__4G^<$9#"RME=PD3`JO^
M.0F:NPW9/VQ:>2$!B]?#`[SM75-H6K0SL$.*@^>#WL[2,+0D/RS:+%SV.&?'
MPP"TSKL+X=Z(;@0W#_[J\`+">&L(.$_RR<&YJLP=V5U@,9N8OWHIW#`]NH:7
M,SMLFTS"7^EBYM8I(EGBO^9/AP=9CJ'\$OZ>LQ%.9^?GK"`Z?OOGUZ_',3?!
M3QA7GN:-DL/"D"\#52([GCRE=%102N]"DKAW[VS/2XKY[-YY.&YZ:O:-BADA
M&[?8-R[DBVS8K&1:0*F1,9DI^W>#-!3Q AT X^0GI,!3D AT 7'\?50"7[H>%[7^'$
M>R>9&K]063.<1V+@PGMC]BN72@+TD>!N AT Q>`D$Z74)(`L(:;9[`SF7UE<7PP
MF<*-,665J=GVG1'-^3'`DAWN1O@,&C\_/MLJ*BJFD.WT!MD^9X6K1$5`E3.2
MZ+M,LN^'\.G_O'>OL"FP.2`5MTA^+%[C2OBF,#:6!`##*.='"]P=3M\$VC,A
M&N/N%+P&O6=&+&.V.,51P3OV38O553EM#CNWI81LR)?"WFD<>2>$4=.+;$>2
M^YT'_13ODM.=)W44[Z.SG4?1P]NMF#PY9R/:%#9A:/UD]D6$`<N_:%L-W[P+
MWSNEJQ/R5SR8A,L(69D]980E87:@S#\?\'8X`XEWN--)`!Q:"4,5P(59]`#R
MV2>A$&=#87Z36KH,ZT2R>&]M-J!;T^"]KC<**#%V1:4<P".>84`<@TA-Y/HY
MW&90&D!)F`;`UIS+%FX*D8O^EJHO>>UN,H*:<YWY[W8CAL_B+M)(MIT3LHRI
MY]FK\;B<.'G:ANR<)YOT,AE=&'5>Y/0L-6W-&+._L<&<2V-*;OV5<%ZF\I#&
M`_VM])56C0Y(M4,I`EX&V//B&W.21Z4GF1^E9X/O'+_^Q\-@(A,#@)\%F;R4
M,)C88!#D=X6.T.^:QL;,\JU;D'#4*VHYE]#W AT VK)8O^Y4BK9<%!HZ)2\(%D1
MB9,_GD5QMIXSBIA)L#RY@%S!,^G+!\-1T?:U3(<HSAV;0=^%8-\N]?9ET#R!
MTF^"94>9"+DO3$X^@GOLU&+%F,F6^>XH:XOBKM9VEOS&RV%'SDICVK:DXM[2
M9,)>RENQ_?6C*MW:22?Y3RAJ,[0^.GF)5V/A3 AT AN10!U\B_%%#CZ621Q[72(
MTULG\?E='EB99H3KD7@#*$*)Z?+1G/#_(*^MV!VD<H>B?[AUAV20*`(<.]]6
M"$N6J']6 AT OV+[7I1Z,LLDL+4O;4X4:'I'Z<&0C[4:N,P(\2L^_3UFAC=\JJB
M)+#8)I!"W&\F,=LF$2/BMRB0>"$H$Z6B"R#U_+TD\0\$VE*Q7ZTYX6=G3\LY
M%<E?L82XY)._[*O?R,G*VW996-MGZ]`BY%=7RV\9)+,-E=3.MP[(1/\)4&:P
MR&]988 AT AV39^>Z-*)G)]YJW9HPF]H=KH8Y5 AT HD*-);*5ZW'PX_"-D2Q AT L%%9
M?XQ)0WO!LD$)0<YR:HJ:5%X!!V_PZR&Q2,2O>A)0M9M8]\$8:3T:P>#K)D%L
M_PG\BUZ,.UQA%+&/N$\X:$_:@0,M-Q\=O8`;"XD[+_"_P[$J_G]K2!7$^!]U
M5(U0'>.</.[F9^E&D[S=S71#K'X!#&_??_\/4$L!`A0`%`````@`PXJ((UQ<
M2R*;&0```4<```P``````````0`@`````````$U!4$-/3$]2+E185%!+!08`
1`````0`!`#H```#%&0`````
`
end


--RnJpLCAxMyBGZWIgMTk5OCAxNDozMjo1MSArMDIwMA==--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019