LINE (100, 100)-(1948, 924), 1, BF
Save_BMP imb
, "test16.bmp", 2 :
REM 0 = 32 bit
, 1 = 8 bit
, 2 = 4 bit
, 3 = 1 bit
SUB Save_BMP
(src
AS LONG, file
AS STRING, typ
AS _UNSIGNED _BYTE) 'typ: 0 = 32 bit, 1 = 256 colors, 2 = 16 colors, 3 = 2 colors PRO KONVERZI NEJPRVE DITHERINGEM UDELEJ 256 clr zdroj a ten uloz. NELZE ulozit primo 32 bit do 8 bit! 'moje save formule
Size
AS LONG 'celkova velikost souboru Data_Start
AS LONG ' startovni oblast dat obrazu. U 32 bitu to je hned po hlave, u ostatnich az po 54 + oblast palety - protoze tahle hlava ma 14, nasleduje druha hlava, ktera ma 40 bytu
Image_Size
AS LONG ' dam nulu a Total_Colors
AS LONG 'muze byt 0 (0, 256, 16, 2)
I.BPP = 32: I.Total_Colors = 0: Depth = 4 ' 32 bit
I.BPP = 8: I.Total_Colors = 0: Depth = 1 ' 256 clrs
I.BPP = 4: I.Total_Colors = 0: Depth = 1 ' 16 clrs
I.BPP = 1: I.Total_Colors = 0: Depth = 1 ' 2 clrs
H.ID = "BM": H.Reserved0 = 0: H.Reserved1 = 0: I.Hlava_velikost = 40: I.planes = 1: I.Compress = 0: I.Image_Size = 0: I.Xpels = 0: I.Ypels = 0: I.Important_Colors = 0
N
= _MEMNEW(I.
width * I.height
* Depth
) 'oblast pameti, kde se bude otacet Y
_MEMPUT N
, N.OFFSET
+ in
(x
, y
, src&
), v
o = o + 4
_MEMPUT N
, N.OFFSET
+ in
(x
, y
, src&
), v2
o = o + 1
uk = uk + 1
binar$
= binar$
+ RIGHT$(DECtoBIN$
(v2
), 4) IM3(index) = BINtoDEC(binar$)
binar$ = ""
index = index + 1
uk = 0
o = o + 1
uk = uk + 1
binar$
= binar$
+ RIGHT$(DECtoBIN$
(v2
), 1) IM4(index) = BINtoDEC(binar$)
binar$ = ""
index = index + 1
uk = 0
o = o + 1
' in& = (y * _WIDTH(src&) + x)
IF vstup
AND 2 ^ rj
THEN DECtoBIN$
= DECtoBIN$
+ "1" ELSE DECtoBIN$
= DECtoBIN$
+ "0"
BINtoDEC
= VAL("&B" + b$
)