]> vgcfreebox.myrthtech.pt Git - ue-ccd-compressaodeimagensbinarias.git/blob - taxa_compressão.py
second version delivered to teacher
[ue-ccd-compressaodeimagensbinarias.git] / taxa_compressão.py
1 import os
2 import sys
3
4 def calcular_taxa_compressao(caminho_original, caminho_comprimido, total_pixeis):
5
6 tamanho_orig = os.path.getsize(caminho_original)
7 tamanho_comp = os.path.getsize(caminho_comprimido)
8
9 poupanca = (1 - (tamanho_comp / tamanho_orig)) * 100
10
11 bpp = (tamanho_comp * 8) / total_pixeis
12
13 return poupanca, bpp, tamanho_orig, tamanho_comp
14
15 def clean_image_data(image_data):
16
17 clean_text = ""
18
19 for line in image_data:
20 line = line.strip()
21 line = line.replace(" ", "")
22 if not line or line.startswith('#'):
23 continue
24 clean_text += line
25
26 return clean_text
27
28 with open(sys.argv[1], "r") as ficheiro:
29 lines = ficheiro.readlines()
30 image_data = clean_image_data(lines[2:])
31
32 largura, altura = lines[1].split(" ")
33
34 total_pixeis = int(largura) * int(altura)
35 p, b, t_o, t_c = calcular_taxa_compressao(sys.argv[1], sys.argv[1] + "_compressed", len(image_data))
36
37 print(f"Tamanho Original: {t_o} bytes")
38 print(f"Tamanho Comprimido: {t_c} bytes")
39 print(f"Redução: {p:.2f}%")
40 print(f"Rácio: {b:.4f} bits/pixel")