]>
vgcfreebox.myrthtech.pt Git - ue-ccd-compressaodeimagensbinarias.git/blob - main.py
3 if __name__
== '__main__':
4 _original
= utils
.get_file('pixel_character.pbm')
5 #_original = utils.get_file('tetris_example.pbm')
6 _pbm_content
= utils
.BitMapFile(_original
)
9 print("\n1) print file info")
10 print("2) Preview arithmetic codification info ")
11 print("3) Encode with arithmetic style ")
12 print("4) Decode with arithmetic style ")
13 print("5) Apply XOR to image before compression \n")
14 _user_input
= input("your option --> ")
16 if _user_input
== "1":
17 print("\n*** PORTABLE BITMAP FILE INFO ***")
18 print(f
"magic number:{_pbm_content.magic_number},\nimage width:{_pbm_content.image_width},image height:{_pbm_content.image_height}")
19 print(f
"Zeros ---> {_pbm_content.zeros}")
20 print(f
"Uns ---> {_pbm_content.ones}")
21 print("***** \t ******** \t *****\n")
22 input("<back to menu>")
23 if _user_input
== "2":
24 utils
.arithmetic_cod_preview(_pbm_content
)
25 if _user_input
== "3":
26 _result_option_1
, _result_option_2
= utils
.arithmetic_encode_image(_pbm_content
)
27 with open('arithmetic_output_opt1.txt', 'w') as f
:
28 f
.write(_result_option_1
)
29 with open('arithmetic_output_opt2.txt', 'w') as f
:
30 f
.write(_result_option_2
)
31 if _user_input
== "4":
32 _result
= utils
.arithmetic_decode_file('arithmetic_output_opt2.txt')
33 with open('arithmetic_decode_output.pbm', 'w') as f
:
35 if _user_input
== "5":
36 _new_pbm
= _pbm_content
37 _xor_on_image
= utils
.xor(_new_pbm
.image_array
,int(_new_pbm
.image_width
),int(_new_pbm
.image_height
))
38 _new_pbm
.image_arra
= _xor_on_image
39 _
, _result
= utils
.arithmetic_encode_image(_new_pbm
)
41 with open('arithmetic_output_wxor.txt', 'w') as f
: