Ĺadny brzuch
W plikach graficznych (*.jpg, itp) w naglowku pliku sa zapisane dane o pliku - chce dowiedziec sie jaka jest np: rozdzielczosc danego pliku (ale nie chce go otwierac tylko przeczytac to z naglowka). Znalazlem przyklad dla plikow *.jpg - ale nie zawsze dziala (nie kazdy plik *.jpg potrafi odczytac poprawnie). Moze ktos zna jaka inna lub lepsza metode by dostac te dane. A moze ktos wie gdzie znajde opis naglowkow (ktory bajt naglowka co oznacza) plikow graficznych (bmp,jpg,gif,tiff itp) ?
szukałeś tych bajtów w pliku, jakimś edytorem binarnym?
Kazdy plik ma inny format naglowka. JPEG w sumie tez nie jest jednolitym formatem, bo jezeli sie nie myle, to JPEG200 tez ma rozszerzenia *.jpg lub *.jpeg a jak juz sama nazwa mowi - jest troche innym formatem.
Ja bym poszukal w specyfikacjach tychze formatow.
W plikach graficznych (*.jpg, itp) w naglowku pliku sa zapisane dane o pliku - chce dowiedziec sie jaka jest np: rozdzielczosc danego pliku (ale nie chce go otwierac tylko przeczytac to z naglowka). Znalazlem przyklad dla plikow *.jpg - ale nie zawsze dziala (nie kazdy plik *.jpg potrafi odczytac poprawnie). Moze ktos zna jaka inna lub lepsza metode by dostac te dane. A moze ktos wie gdzie znajde opis naglowkow (ktory bajt naglowka co oznacza) plikow graficznych (bmp,jpg,gif,tiff itp) ?
Sam ort! powie ci tylko z jakim plikiem masz do czynienia. Nic więcej. Jak wsadzisz w debuger to dwa pierwsze znaki pliku sa naglowkiem.
Użytkownik migajek edytował ten post 02 październik 2006, 16:16
Sam ort! powie ci tylko z jakim plikiem masz do czynienia. Nic więcej. Jak wsadzisz w debuger to dwa pierwsze znaki pliku sa naglowkiem.
ad1. nieprawda, w przypadku JPG powie ci rowniez jakie wymiary ma JPG.
[1] http://www.obrador.c.../headerinfo.htm
[2] http://www.faqs.org/...jpeg-faq/part1/
The header of a JPEG file consists of a series of blocks, called "markers".
The image height and width are stored in a marker of type SOFn (Start Of
Frame, type N). To find the SOFn you must skip over the preceding markers;
you don't have to know what's in the other types of markers, just use their
length words to skip over them. The minimum logic needed is perhaps a page
of C code. (Some people have recommended just searching for the byte pair
representing SOFn, without paying attention to the marker block structure.
This is unsafe because a prior marker might contain the SOFn pattern, either
by chance or because it contains a JPEG-compressed thumbnail image. If you
don't follow the marker structure you will retrieve the thumbnail's size
instead of the main image size.) A profusely commented example in C can be
found in rdjpgcom.c in the IJG distribution (see part 2, item 15). Perl
code can be found in wwwis, from http://www.tardis.ed.ac.uk/~ark/wwwis/.
ad2. co do tego ma debugger? :|
jak zwykle sa osoby na ktore mozna liczyc -dzieki migajek
A podruznikowi moge podeslac edytor binarny :) naucz sie czlowieku czegos a nie sobie zarty robisz.
A podruznikowi moge podeslac edytor binarny :) naucz sie czlowieku czegos a nie sobie zarty robisz.
Mam kilka więc dziękuję. Ucze się całe życie, tak jak inni. Widzisz gdzieś tutaj żarty?
Specyfikacje formatów różnych plików:
http://www.wotsit.org/
Zrób z tego dobry użytek :)
Pozdrawiam,
TeMPOraL.
//EDIT
Weź ktoś dopisz tego linka do tych 'przydatnych rzeczy' czy co to tam jest przyklejone w tym dziale :)
//EDIT2
Thx, Migajek :)
Użytkownik TeMPOraL edytował ten post 06 październik 2006, 19:07
Ja mam naglowek BMP 256-kolorowego pliku. Oto on:
TBMPNaglowek = record bfType : Word; bfSize : LongInt; bfReserved : LongInt; bfOffBits : LongInt; biSize : LongInt; biWidth : LongInt; biHeight : LongInt; biPlanes : Word; biBitCount : Word; biCompression : LongInt; biSizeImage : LongInt; biXPelsPerMeter : LongInt; biYPelsPerMeter : LongInt; biClrUsed : LongInt; biClrImportant : LongInt; End;
To jest na samym początku pliku. Pierwsze dwa bajty zawsze odpowiadają sygnaturze "BM".
TeMPOraL nie martw sie napewno zrobie z tego pozytek juz dzieki temu co mi migajek napisal jest niezly pozytek . Ale wiedza na temat naglowkow wszystkich plikow tez bedzie mi niezbedna. THX TeMPOraL :)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
szukałeś tych bajtów w pliku, jakimś edytorem binarnym?
Kazdy plik ma inny format naglowka. JPEG w sumie tez nie jest jednolitym formatem, bo jezeli sie nie myle, to JPEG200 tez ma rozszerzenia *.jpg lub *.jpeg a jak juz sama nazwa mowi - jest troche innym formatem.
Ja bym poszukal w specyfikacjach tychze formatow.
W plikach graficznych (*.jpg, itp) w naglowku pliku sa zapisane dane o pliku - chce dowiedziec sie jaka jest np: rozdzielczosc danego pliku (ale nie chce go otwierac tylko przeczytac to z naglowka). Znalazlem przyklad dla plikow *.jpg - ale nie zawsze dziala (nie kazdy plik *.jpg potrafi odczytac poprawnie). Moze ktos zna jaka inna lub lepsza metode by dostac te dane. A moze ktos wie gdzie znajde opis naglowkow (ktory bajt naglowka co oznacza) plikow graficznych (bmp,jpg,gif,tiff itp) ?
Sam ort! powie ci tylko z jakim plikiem masz do czynienia. Nic więcej. Jak wsadzisz w debuger to dwa pierwsze znaki pliku sa naglowkiem.
Użytkownik migajek edytował ten post 02 październik 2006, 16:16
Sam ort! powie ci tylko z jakim plikiem masz do czynienia. Nic więcej. Jak wsadzisz w debuger to dwa pierwsze znaki pliku sa naglowkiem.
ad1. nieprawda, w przypadku JPG powie ci rowniez jakie wymiary ma JPG.
[1] http://www.obrador.c.../headerinfo.htm
[2] http://www.faqs.org/...jpeg-faq/part1/
The header of a JPEG file consists of a series of blocks, called "markers".
The image height and width are stored in a marker of type SOFn (Start Of
Frame, type N). To find the SOFn you must skip over the preceding markers;
you don't have to know what's in the other types of markers, just use their
length words to skip over them. The minimum logic needed is perhaps a page
of C code. (Some people have recommended just searching for the byte pair
representing SOFn, without paying attention to the marker block structure.
This is unsafe because a prior marker might contain the SOFn pattern, either
by chance or because it contains a JPEG-compressed thumbnail image. If you
don't follow the marker structure you will retrieve the thumbnail's size
instead of the main image size.) A profusely commented example in C can be
found in rdjpgcom.c in the IJG distribution (see part 2, item 15). Perl
code can be found in wwwis, from http://www.tardis.ed.ac.uk/~ark/wwwis/.
ad2. co do tego ma debugger? :|
jak zwykle sa osoby na ktore mozna liczyc -dzieki migajek
A podruznikowi moge podeslac edytor binarny :) naucz sie czlowieku czegos a nie sobie zarty robisz.
A podruznikowi moge podeslac edytor binarny :) naucz sie czlowieku czegos a nie sobie zarty robisz.
Mam kilka więc dziękuję. Ucze się całe życie, tak jak inni. Widzisz gdzieś tutaj żarty?
Specyfikacje formatów różnych plików:
http://www.wotsit.org/
Zrób z tego dobry użytek :)
Pozdrawiam,
TeMPOraL.
//EDIT
Weź ktoś dopisz tego linka do tych 'przydatnych rzeczy' czy co to tam jest przyklejone w tym dziale :)
//EDIT2
Thx, Migajek :)
Użytkownik TeMPOraL edytował ten post 06 październik 2006, 19:07
Ja mam naglowek BMP 256-kolorowego pliku. Oto on:
TBMPNaglowek = record bfType : Word; bfSize : LongInt; bfReserved : LongInt; bfOffBits : LongInt; biSize : LongInt; biWidth : LongInt; biHeight : LongInt; biPlanes : Word; biBitCount : Word; biCompression : LongInt; biSizeImage : LongInt; biXPelsPerMeter : LongInt; biYPelsPerMeter : LongInt; biClrUsed : LongInt; biClrImportant : LongInt; End;
To jest na samym początku pliku. Pierwsze dwa bajty zawsze odpowiadają sygnaturze "BM".
TeMPOraL nie martw sie napewno zrobie z tego pozytek juz dzieki temu co mi migajek napisal jest niezly pozytek . Ale wiedza na temat naglowkow wszystkich plikow tez bedzie mi niezbedna. THX TeMPOraL :)