[SOLVED] wyciąganie do skryptu informacji z EXIF - kodowanie polskich znaków

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
-5tan
Piegowaty Guziec
Piegowaty Guziec
Posty: 6
Rejestracja: 20 sie 2006, 00:21
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86

[SOLVED] wyciąganie do skryptu informacji z EXIF - kodowanie polskich znaków

Post autor: -5tan »

Witam

Moim zamiarem było wyciągnięcie do skryptu bash-a danych UserComment ze znaczników Exif, żeby później te "komentarze użytkownika" jakimś ImageMagick'iem dodać jako tekst do wywoływanej fotografii (czyli żeby tekst z metadata pojawił się jako zbiór pikseli w pliku *.jpeg).

Niestety, okazało się, że zamiast podpisów exiv2 zwraca mi w miejscu polskich literek śmieci np.

Kod: Zaznacz cały

$ exiv2 dsc04738.jpg | grep "Exif comment"
Warning: JPEG format error, rc = 5
Exif comment    : za|�B g[l jazD

Próbowałem (dla testu) przekodowywać z utf8 do ascii to za pomocą programu konwert, ale efekt był taki:

Kod: Zaznacz cały

$ konwert utf8-ascii cosik.txt 
Exif comment    : za|?B g[l jazD
Komentarz zawiera ciąg: zażółć gęślą jaźń. Dodany był za pomocą programu f-spot w wersji 0.5.0.3
Komentarz jest poprawnie wyświetlany w programie f-spot, oraz np. przez digikam. Ale w konsoli wyskakują mi kwiaty :(

Czy ktoś ma pomysł, jak wyciągnąć podpisy z polskimi znakami w postaci użytecznej do zastosowania w skrypcie bash-a?

Szczerze mówiąc mnie opanowało już zwątpienie i jestem w takim stanie, że muszę odejść od komputera, bo mam ochotę nim rzucać. :evil:

Pozdrawiam
-5tan

EDIT:
Polecenie

Kod: Zaznacz cały

$ exif -t UserComment dsc04738.jpg 
Wyświetla:

Kod: Zaznacz cały

Wpis EXIF 'Komentarz użytkownika' (0x9286, 'Komentarz użytkownika') istnieje w IFD 'Komentarz użytkownika':
Tag: 0x9286 ('UserComment')
  Format: 7 ('Nieokreślony')
  Components: 42
  Size: 42
  Value: Nieobsługiwany łańcuch UNICODE
HP Compaq nx7400 EY508ES - konfiguracja oryginalna [i upgrade'owana] Intel Core Duo 2x1.73 / 1GB [2,5GB] / 80GB [320GB] SATA
Awatar użytkownika
moridin
Sędziwy Jeż
Sędziwy Jeż
Posty: 57
Rejestracja: 06 gru 2008, 15:21
Płeć: Mężczyzna
Wersja Ubuntu: 8.04
Środowisko graficzne: GNOME
Kontakt:

Odp: wyciąganie do skryptu informacji z EXIF - problem z kodowaniem polskich znaków

Post autor: moridin »

A mógłbyś gdzieś wrzucić tego obrazka? Żeby można było testować na tym samym?
May the Source Be With You!
[AMD Duron(tm) 999.348 MHz | 503.4 SDR | Gigabyte GeForce 7600 GS 512 DDR2] :-P
http://scripts-zone.info/
-5tan
Piegowaty Guziec
Piegowaty Guziec
Posty: 6
Rejestracja: 20 sie 2006, 00:21
Płeć: Mężczyzna
Wersja Ubuntu: 9.10
Środowisko graficzne: GNOME
Architektura: x86

Odp: wyciąganie do skryptu informacji z EXIF - niepoprawne kodowanie polskich znaków

Post autor: -5tan »

Proszę bardzo :)
Oto przykładowy obrazek w załączniku. Komentarz był edytowany w f-spot i zawiera ciąg "zażółć gęślą jaźń".

Chwilowo nie mam możliwości z tym walczyć, bo nie mogę usiąść do komputera, ale obiecuję, że nocą ukażę swą dzielność. Tym bardziej, że rozwiązanie może się przydać wielu osobom.

Pozdr.
-5tan

EDIT: dorzucam drugą fotkę - wykonaną przeze mnie. Zawiera komentarz: Wilku zażółć gęślą jaźń
Komentarz również był dodany w f-spot.

EDIT2: okazuje się, że problem ma bardzo proste rozwiązanie. Aby wyekstrahować string z komentarzem użytkownika i cieszyć się poprawnymi polskimi znakami użyłem:

Kod: Zaznacz cały

exiftool -s -s -s -UserComment dscf6367.jpg 
co dało w wyniku oczekiwane przeze mnie:

Kod: Zaznacz cały

Wilku zażółć gęślą jaźń.

Podsumowując: problem właściwego odkodowania komentarza dodanego za pomocą programu f-spot dotyczy exiv2 oraz exif - rozwiązaniem jest użycie exiftool :)
Załączniki
dscf6367.jpg
sluts_theyre_easy_to_spot.jpg
HP Compaq nx7400 EY508ES - konfiguracja oryginalna [i upgrade'owana] Intel Core Duo 2x1.73 / 1GB [2,5GB] / 80GB [320GB] SATA
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości