Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Konwersja application/octet-stream na jpg
hettmix
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 10.03.2012

Ostrzeżenie: (0%)
-----


Witam.

Posiadam plik o rozszerzeniu *.bif utworzony przez kamerę urządzenia rejestrującego. Mime type tego pliku to application/octet-stream. W nagłówku tego pliku jest coś takiego:

Cytat
BIFFII...........JFIF......
HEX - 42 49 46 46 49 49


W systemie Windows plik nie jest prawidłowo rozpoznawany i nie można go wyświetlić, za to w XnView otwiera się bez problemu. XnView podaje, że jest to JPEG based file.

Funkcja:
  1. $data = file_get_contents($target);
  2. $image = imagecreatefromstring($data);
  3. print $image;

zwraca - Warning: imagecreatefromstring(): Data is not in a recognized format


Jak mogę wyświetlić ten plik w przeglądarce lub dokonać jego konwersji to formatu *.jpg ?. Czy nie jest to przypadkiem plik skompresowany ?.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Mi to wygląda na plik JPEG z dodatkowym "magic number" na początku. Jak możesz to wystaw gdzieś taki plik.


--------------------
Go to the top of the page
+Quote Post
hettmix
post
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 10.03.2012

Ostrzeżenie: (0%)
-----


Cytat(redeemer @ 23.09.2013, 10:54:01 ) *
Mi to wygląda na plik JPEG z dodatkowym "magic number" na początku. Jak możesz to wystaw gdzieś taki plik.


Poniżej link do pliku:
Link do pliku *.bif
Go to the top of the page
+Quote Post
redeemer
post
Post #4





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Tak jak podejrzewałem, wystarczy wyciąć niepotrzebne bajty z przodu (w przypadku gdy ich liczba jest stała):
  1. $fname = '90000_001.bif';
  2. $data = substr(file_get_contents($fname), 71);
  3. file_put_contents($fname.'.jpeg', $data);
Gdy ich długość jest zmienna trzeba wyciąć wszystko do napotkania:
Kod
0xff 0xdb 0xff 0xe0 0x00 0x10 0x04A 0x46 0x49 0x46


Ten post edytował redeemer 23.09.2013, 11:47:25


--------------------
Go to the top of the page
+Quote Post
hettmix
post
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 10.03.2012

Ostrzeżenie: (0%)
-----


Cytat(redeemer @ 23.09.2013, 12:43:39 ) *
Tak jak podejrzewałem, wystarczy wyciąć niepotrzebne bajty z przodu (w przypadku gdy ich liczba jest stała):
  1. $fname = '90000_001.bif';
  2. $data = substr(file_get_contents($fname), 71);
  3. file_put_contents($fname.'.jpeg', $data);
Gdy ich długość jest zmienna trzeba wyciąć wszystko do napotkania:
Kod
0xff 0xdb 0xff 0xe0 0x00 0x10 0x04A 0x46 0x49 0x46


Thx - śmiga aż miło...

Ale korzystając z okazji mam jeszcze jedno pytanko, ponieważ potrzebuję po wyświetleniu tego pliku w przeglądarce wyciąć fragment obrazu, który później będzie umieszczony w szablonie pdf. Kiedyś widziałem w jakimś programie taką opcję dzięki której można było przy pomocy myszki (poziomy i pionowy kursor) wyciąć np. prostokątny obszar. Szczerze mówiąc nie mam pojęcia jak się do tego zabrać.
Go to the top of the page
+Quote Post
redeemer
post
Post #6





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Jeśli chodzi Ci o front-end to możesz skorzystać np z JCrop. Masz tam nawet Live demo z przykładowym kodem PHP.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 00:36