Date: Fri, 13 Feb 1998 14:32:31 -0200 Message-Id: <199802131632.OAA038.30@ns1.bspu.unibel.by> To: James W Sager Iii From: Alexander Bokovoy Cc: DJGPP mailing list Subject: Re: Allegro BMP Color Depth Conversion In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="RnJpLCAxMyBGZWIgMTk5OCAxNDozMjo1MSArMDIwMA==" Content-Transfer-Encoding: 7bit Precedence: bulk --RnJpLCAxMyBGZWIgMTk5OCAxNDozMjo1MSArMDIwMA== Content-Type: text/plain On Fri, 13 Feb 1998 05:41:17 -0500 James W Sager Iii 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, ---== 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 MQ[%6OI-EK]>)7W26LK[4GBL%SH`DSC,`%\"( MYN;\WP_=#6``DG8VB38E4S-`H[O1KP_`7.I6&_9?/5=._LJ=U(KU5JH%>U<[ M(X0]/'C#5RMX/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_>*-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[*)ZP6P[;+E4C/J,:<7E0DQ'-?3")^V AT B M;/3^Y;,QC;:D&%`4&0+1X`Y5%"BLM)51VD;:545A"`L AT 2 MS$:Y!`8`LG^KZ=GI=X^BP=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&`.!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_-(/,]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($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,DRY M0WP<-@8BGC/\5AA+.@_RBOXG(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'J6GK0V;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`04K!"!@:V)4PQ7+4B&E=H2TL"$9WB&YACBS3J\8 M..EDPN>`S*+HV.T.5,AWP60I6:PY-,`++M7T\.`OND>+!FJZ=X"LYCEW?SY_ M3YIGHMK#I4:O_;(Q9C:R-GH@&'_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>4Q[@50PL!S&'IWG>Q88 AT M+BB6\&$<0?`R;AP!H%C*`)"5 M8*[#@W7[][^].+]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>BBX% M;R*4%HXY AT HDGM/>-#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./X1?5``>.L9W=753:O8 M1,=5N,XQT[UC#Q\<'\>*`H]/1:T5GB=R]O#QH_L/'K"KRX`#I*,>RK(9LA(1 ME62D=K&@;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`^86CVB8.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>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<<*NX9;)0IC)3\*T?%'!W9W'GM%XL:?">SZ>+^+A%6JRN-H+#/Y@(#<^ZR$W ML^?4KGGY=U9/VGA\"MJ AT JTL5762:_IT[3U&?6_>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;CQQVALR"0J`[?G>ND;JZ?+I[N-6SG:>'U'\/AHB%_Q(!>^.;B^D\_ISD?V3G[V_'GXY.*^=^G^/LA_GX, MOT^.X? 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$`A$&=#87Z36KH,ZT2R>&]M-J!;T^"]KC<**#%V1:484`<@TA-Y/HY MW&90&D!)F`;`UIS+%FX*D8O^EJHO>>UN,H*: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(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!VDB?[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%Z-*)G)]YJW9HPF]H=KH8Y5 AT HD*-);*5ZW'PX_"-D2Q AT L%%9 M?XQ)0WO!LD$)0A)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'>.