Matei Posted May 6, 2012 Report Posted May 6, 2012 Hello, Stie cineva destul de bine C++ ? Am o tema sa comprim un fisier .bmp utilizand huffman compression . Am facut tot algoritmul, merge ... dar am o mica problema si nu pot sa-i dau de cap. Trebuie sa scriu in headerul fisierului de out MC in loc de BM ( BM au fisierele bmp in header ) , iar extensia mea trebuie sa fie mcb ... Am incercat sa-i dau ceva de genu ... : if ((( bfh.bfType & 0x00FF) == 'B') || ((bfh.bfType >> 8) & 0x00FF) == 'M') bfh.bfType=0x4d43;Dar tot nu merge. Adica, incerc sa le scriu ... dar nu inteleg unde Poate cineva sa se uite ? Raman dator vandut ! Quote
ionut.hulub Posted May 6, 2012 Report Posted May 6, 2012 pai din cate stiu eu caracterele alea sunt primele din fisier daca il deschizi cu notepad, desi nu pot sa zic ca inteleg pe deplic ce vrei.daca am inteles corect, poti sa verifici pe ce pozitie sunt caracterele ce tre modificate si le inlocuiesti gen:#include <Windows.h>fisier = CreateFile("numeFisier", ....); //inlocuiesti .... , nu stau sa scriu toata fct aici.char buffer[10];ReadFile(fisier, buffer, ....); //citesti primele 10 caractere.buffer[0] = 'M'; //le inlocuiesti.buffer[1] = 'C';WriteFile(fisier, .....); //le scri inapoi in fisier. Quote
Matei Posted May 6, 2012 Author Report Posted May 6, 2012 Am rezolvat treaba asta pana la urma ... am scris pur si simplu ca headerul = 0x434D ( valoare in hexa a lui MC ) ... Acum alta e problema. Am rulat cu valgrind pentru debug si am niste probleme la crearea arborelui Huffman Se pare ca scriu peste ceva ce nu exista ( nu stiu daca interpretez bine ca nu prea am folosit valgrind pentru debug ) Quote
keller946 Posted May 7, 2012 Report Posted May 7, 2012 Matei, arat?-ne ?i nou? ce-?i spune valgrind (SDA, right? ) Quote
Matei Posted May 7, 2012 Author Report Posted May 7, 2012 Algoritmi fac in anu 2 sem 1 Acum e doar SD ( sunt la calculatoare ) . Am reusit sa-l fac sa mearga ( compress + decompress ) dar scrie putin gresit. Avem si un executabil oficial . Iar daca eu fac compress cu al meu si dau decompress cu al lor obtin urmatorile erori cu valgrind ( + segf ) - matei@matei-Satellite-C660:~/Desktop/Tema 3/tests$ valgrind ./mycompbmp -d test7 - Pastebin.com Quote
keller946 Posted May 7, 2012 Report Posted May 7, 2012 biCompression l-ai f?cut BI_MCB (0xC0FFEE) ? Quote
Nytro Posted May 7, 2012 Report Posted May 7, 2012 Pe aici v-ati uitat: oberhumer.com: LZO real-time data compression library ? Quote
Matei Posted May 7, 2012 Author Report Posted May 7, 2012 bfh.bfType = 0x434D; // MC bih.biCompression = BI_MCB;// Custom MCB constant#define BI_MCB 0xC0FFEELYep dupa cum vezi ! Quote