>> wybierz styl >> es :: ns :: bs

Weblog Tomasza Przechlewskiego [Zdjęcie T. Przechlewskiego] [[Ikona]]


scrum
random image [Photo gallery]
Zestawienie tagów
1-wire | 18b20 | 1wire | 2140 | 3rz | alsamixer | amazon | anniversary | antypis | apache | api | arm | astronomy | asus | atom.xml | awk | aws | balcerowicz | balta | bash | berlin | bibtex | bieszczady | biznes | blogger | blogging | blosxom | borne-sulinowo | breugel | bt747 | canon | cedewu | chello | chown | chujowetaśmy | cmentarz | contour | cron | css | csv | curl | d54250wykh | debian | dejavu | dhcp | dht22 | dia | docbook | dom | ds18b20 | dyndns | dynia | ebay | economy | ekonomia | elka | elm | emacs | emacs23 | english | ess | eu | excel | exif | exiftool | f11 | fc | fc11 | fc15 | fc5 | fc8 | fedora | fedora21 | fenix | ffmpeg | finepix | firefox | flickr | fontforge | fontspec | fonty | fop | foto | france | francja | fripp | fuczki | fuji | fuse | gammu | garmin | gawk | gazwyb | gdańsk | gdynia | geo | georgia | gft | git | github | gmail | gnokii | gnus | google | googlecl | googleearth | googlemaps | gphoto | gphoto2 | gps | gpsbabel | gpsphoto | gpx | gpx-viewer | greasemonkey | gruzja | grzyby | haldaemon | handbrake | historia | history | hitler | holocaust | holokaust | hpmini | humour | iblue747 | ical | iiyama | ikea | imap | inkscape | inne | internet | j10i2 | javascript | jhead | k800i | kajak | kamera | kleinertest | kml | kmobiletools | knuth | kod | kolibki | komorowski | konwersja | krutynia | kuchnia | kurski | latex | latex2rtf | latex3 | lcd | legend | lenny | lesund | lewactwo | liberation | linux | lisp | lisrel | litwa | logika | ltr | lwp | m2wś | mapsource | marvell | math | mathjax | mazury | mbank | mediolan | mencoder | mh17 | michalak | microsoft | monitor | mp4box | mplayer | ms | msc | msw | mtkbabel | museum | muzyka | mymaps | mysql | nanopi | natbib | navin | neo | neopi | netbook | niemcy | niemieckie zbrodnie | nikon | nowazelandia | nuc | nxml | oauth | oauth2 | obituary | okular | olympus | ooffice | ooxml | opera | otf | otftotfm | other | overclocking | panoramio | pdf | pdfpages | pdftex | pdftk | perl | photo | photography | picasa | picasaweb | pim | pine | pit | plotly | pls | plugin | po | politics | polityka | polsat | postęp | powerpoint | prelink | problem | propaganda | pstoedit | putin | python | r | radio | random | raspberry pi | refugees | relaxng | ridley | router | rower | rowery | rpi | rsync | rtf | ruby | rugby | russia | rwc | rwc2007 | rwc2011 | rzym | samba | sem | sheevaplug | sienkiewicz | signature | sks | skype | skytraq | smoleńsk | sqlite | srtm | ssl | statistics | stats | statystyka | stix | suwałki | svg | svn | swornegacie | szwajcaria | terrorism | tex | texgyre | texlive | thunderbird | tomato | tourism | tramp | trang | truetype | ttf | turystyka | tusk | tv | tv5monde | twitter | typetools | ubuntu | uchodźcy | udev | umap | unix | upc | updmap | ups | utf8 | varia | video | vienna | virb edit | vostro | wammu | wdc | wdfs | webcam | webdav | wh2080 | wiedeń | wikicommons | wilno | windows | windows8 | wine | wioślarstwo | word | wordpress | wrt54gl | ws1080 | wtyczka | ww2 | www | wybory | wybory2015 | włochy | xemex | xetex | xft | xhtml | xine | xml | xmllint | xsd | xslt | xvidtune | youtube | yum | zakopane | zakupy | zdf | łeba | świdnica
Pobrania via google: [[Ikona]]
Archiwum
Inne blogi
N. Walsh | Morten H. Frederiksen | B. Clementson | prawo.vagla.pl | F. Hecker | M. Olson | J. Tennison | J. Clark | M. Nottingham | M. Shuttleworth | T. Isakowicz-Zalewski | J. Anglim | José A. Ortega Ruiz Modern Perl
Inne tematyczne
Ashwin Amanna | wiesia.nets.pl | Wojt | rwm.org.pl | DataBlog | Revolutions | Learning R | A. Gelman | C. Nel | J. Vogelgesang | ubl.xml.org/ | J.D. Long |
O stronie
wykorzystywany jest blosxom plus następujące wtyczki: tagging, flatarchives, rss10, lastbuilddatexhtmlmime. Niektóre musiałem dopasować nieco do swoich potrzeb. Więcej o blosxom jest tutaj
Subskrypcja
RSS 1.0
Picasa Linux signup problem

Nie mogę się zalogować w programie picasa (wersja dla linuksa, 3.0 beta). Wpisując Picasa Linux signup problem do Google znalazłem podpowiedź:

cp /usr/lib/wine/wininet.dll.so  /opt/google/picasa/3.0/wine/lib/wine/ 

U mnie przynajmniej powyższe działa.

Się przy okazji okazało, że zdjęcia zawierające współrzędne geograficzne przesłane via formularz nie są traktowane jako geotagowane . Picasaweb rozpoznaje zdjęcia jako geotagowane jeżeli są ładowane programem picasa. Na flickr.com jest pod tym względem prościej, bo współrzędne geograficzne są pobierane ze zdjęcia po stronie serwera--wystarczy przesłać plik i nie jest istotne w jaki sposób...

url | Wed, 08/12/2010 20:15 | tagi: , , , , , , ,
Bad MakerNotes directory

Jest problem z opisami EXIF niektórych zdjęć robionych szerokokątnym obiektywem Olympus Zuiko Digital 11--22 f/2.8-3.5. Niektórymi żeby było śmieszniej -- widocznie zależy to od nastaw. Otóż jeżeli synchronizuję zdjęcia ze śladem GPS za pomocą gpsPhoto.pl, to pojawia się komunikat:

error: [minor] Bad MakerNotes directory

Komunikat generuje jakaś procedura z pakietu Image::ExifTool, wykorzystywana przez gpsPhoto.pl. Po aktualizacji exiftool do 8.06 o tyle się sytuacja zmieniła, że komunikat jest inny:

error: [minor] Bad EquipmentIFD directory.

Gdybym korzystał ze skryptu exiftool, to błąd można zignorować dodając opcję -m przy uruchamianiu skryptu. Ale ja używam gpsPhoto.pl, które z kolei korzysta z perlowego pakietu Image::ExifTool. Żeby nie modyfikować gpsPhoto.pl (beznadziejna na oko sprawa), poprawiam wpisy EXIF poniższym programem w Ruby. Słowo poprawiam oznacza dokładnie tyle, że poprawne wpisy są przepisane a błędne zignorowane. Otrzymane w rezultacie opisy EXIF są niekompletne. Opcja -m działa dokładnie identycznie.

#! /usr/bin/ruby 
# fix_tags.rb by Sijmen Mulder <sjmulder@gmail.com> in 2008. Public domain. 

files = Dir.glob("*.JPG").concat Dir.glob("*.jpg") 
 files.each do |file| 
  commands = [ 
   "cp #{file} #{file}_original", 
   "exiftool -overwrite_original -q -exif:all= \"#{file}\"", 
   "exiftool -overwrite_original -q -q -tagsfromfile \"#{file}_original\" --MakerNotes \"#{file}\" " 
 ]

puts(file) 
 commands.each do |c| 
   #puts(c) 
   system(c) 
 end 
end 

puts "Processed #{files.length} file(s)." 

Powyższy skrypt kopiuje każdy plik .jpg z bieżącego katalogu, a następnie wstawia do kopii wyłącznie poprawne wpisy EXIF z pliku oryginalnego.

Program jest w Ruby bo znaleziono go w sieci. Można by przerobić w innym języku ale mi się nie chce

Cała procedura jest taka sobie, bo poprawione pliki .jpg zawierają niekompletne opisy EXIF, ale póki co nic lepszego nie wymyśliłem.

url | Fri, 15/01/2010 22:44 | tagi: , , , , ,
Format Raw i dane EXIF

Przełączyłem aparat na format RAW a do zamiany plików w tym formacie (rozszerzenie .orf) na tiff użyłem dcraw, np.:

dcraw -T plik.orf # zamiana poj. pliku
for i in *.orf; do dcraw -T $i ; done

Pliki są nieskompresowane, więc następnie:

convert plik.tiff -compress ZIP plik_z.tiff # albo
mogrify -compress ZIP plik.tiff

Program mogrify modyfikuje plik oryginalny

Zamiana tiffa na jpeg z wykorzystaniem convert wygląda zaś następująco:

for i in *.tiff; do convert $i `basename $i .tiff`.jpg ; done

Powyższe ma jeden dyskwalifikujący brak: dcraw usuwa dane EXIF. Szukając rozwiązania znalazłem dwa skrypty basha do konwersji z zachowaniem metadanych: Converting RAW images to JPEG with Exif on Fedora oraz wrapper script for dcraw. Pierwszy ze skryptów używa exiv2 a ja mam awersję do tego programu (być może niesłuszną, ale kiedyś mi podpadł). Drugi niby jest dla Nikona, ale żeby działał z Olympusem to wystarczy zmienić nef na orf w jednym wierszu (oprócz tego uprościłem skrypt, bo był sophisticated zbytnio i niepotrzebnie):

#!/bin/bash
# http://www.howtofixcomputers.com/forums/digital-photo/my-humble-contribution-wrapper-script-dcraw-linux-4360.html
# Zamiana plików ORF (Olympus) na JPEG z zachowaniem danych EXIF
# Wykorzystuje dcraw, cjpeg (do kompresji) oraz exiftool
#
DCRAW="dcraw -w -c "

while [ $# -ge 1 ]
do

JPEG=`basename $1 .orf`.jpg
echo "Converting $1 => ${JPEG}..."
$DCRAW $1 | cjpeg -quality 90 > $JPEG || echo " *** Problem writing "

# transfer EXIF data from the original raw file
exiftool -overwrite_original -TagsFromFile "$1" "$JPEG" >/dev/null

shift
done

Przy okazji znalazłem link do konferencji Libre Graphics Meeting.

Dopisane 27 kwietnia 2008: zmieniłem ustawienia w aparacie na zapis RAW+HQ. Poprzednio było RAW, a przedtem HQ. HQ zapisuje prawie że identyczne ,,objętościowo'' pliki .jpg o wielkości 2Mb (z ogonkiem). Nie ustaliłem jeszcze czemu ale pliki konwertowane z RAW różnią się znacząco wielkością (ten sam parametr quality oczywiście) a te produkowane przez aparat są takie same.

url | Wed, 23/04/2008 10:34 | tagi: , , ,
Wysyłanie zdjęć na Wikicommons

W tym tekście opiszę w jaki sposób wysyłam swoje zdjęcia na Wikimedia Commons stosując lekko podrasowany skrypt Erika Möllera (wersja oryginalna). Po pierwsze należy zarejestrować się na Wikimedia Commons (w sposób opisany na podanej wyżej stronie). Potem zmodyfikować skrypt, nadając odpowiednie wartości zmiennym $username oraz $password, znajdującym się na początku skryptu. Teraz należy skopiować wszystkie obrazki do katalogu i uruchamiać skrypt (,,z poziomu'' katalogu nadrzędnego) w następujący sposób:

perl upld2wc.pl katalog

W wyniku działania skryptu powstanie zaślepkowy plik files.txt, który wygląda jakoś tak:

>plik1.jpg
{{Information
|Description= [[:pl:Sopot|Sopot]], Poland
|Source=own work
|Date=2007
|Author=Tomasz Przechlewski
|Permission={{cc-by-2.5}}
}}

>plik2.jpg
{{Information
|Description= [[:pl:Sopot|Sopot]], Poland
|Source=own work
|Date=2007
|Author=Tomasz Przechlewski
|Permission={{cc-by-2.5}}
}}
...

Teraz trzeba dodać/zmodyfikować opis do każdego rysunku (wiersz Description); następnie należy uruchomić skrypt powtórnie:

perl upld2wc.pl katalog

Jakoś nie mogę się przekonać do używania Unicode (nie mam też specjalnie do tego motywacji -- jeden bajt cały czas mi wystarcza), dlatego skrypt ,,oczekuje'', że plik files.txt jest kodowany w wariancie iso-8859-2, natomiast to co jest wysyłane na Wikimedia Commons jest w Unikodzie.

Zdjęcia zrobione w trybie pionowym trzeba oczywiście obrócić. Do tego celu używam programu jpegtran, ale taki sposób żeby zostały zachowane metadane EXIF. Do modyfikowania metadanych EXIF używam programu exiv2:

# kompletny skrypt jest tutaj
exiv2 ex plik-we.jpg # zapisuje EXIF w pliku plik-we.exv 
jpegtran -rotate 90 plik-we.jpg > plik-wy.jpg # obrót
mv plik-we.exv plik-wy.exv # zmiana nazwy
exiv2 -in plik-wy.jpg # wstawia EXIF do obróconego pliku

W podręczniku programu exiv2 błędnie podane jest exiv2 -it zamiast exiv2 -in. Uwaga: podanie exiv2 -pt powoduje wyświetlenie wszystkich metadanych. Zamiast jpegtran można spróbować skorzystać z programu exiftran, który potrafi obrócić obrazek z zachowaniem metadanych. Program exiftran znajduje się w archiwum fbida (przynajmniej w dystrybucji FC5).

Wreszcie nie zawadzi dodać informacje dotyczące autora/licencji do samego pliku ze zdjęcie modyfikując odpowiednie pola EXIF, w tym przypadku Exif.Image.Artist oraz Exif.Image.Copyright:

# kompletny skrypt jest tutaj
exiv2 -M"set Exif.Image.Copyright Licence: CC Attribution" \
  -M"set Exif.Image.Artist Creator: Tomasz Przechlewski" plik

BTW: do manipulowania metadanymi EXIF w skryptach Perla służy świetny pakiet Image::ExifTool. (Por. Mój sposób na dodawanie zdjęć na flickr.com).

Dopisane 21 lutego 2008: Exiv2 jest do kitu, a co najmniej niepotrzebny. Zdjęcie można obrócić dużo prościej. Zamiast mnożyć byty w postaci skryptów basha, My_jpeg_rot (BTW znak minus w nazwach jest niepoprawny w bashu) jest funkcją, którą należy umieścić w ~/.bash_profile:

# Obrót pliku .jpg z zachowaniem metadanych EXIF
# wykorzystanie: My_jpeg_rot [-l -r -u] plik
function My_jpeg_rot () {

ROT="90"

while test $# -gt 0; do
  case "$1" in
       -l) ROT="90" ;;
       -r) ROT="270" ;;
       -u) ROT="180" ;;
        *) FILE="$1" ;;
  esac
  shift
done

if [ "$FILE" = "" ] ; then
  echo " *** Podaj nazwę pliku ***"
else
  f=`basename $FILE .jpg`
  jpegtran -rotate 90 -copy all -outfile "${f}_r".jpg "$f".jpg
  # clear rotation/orientation so that some viewers (e.g. Eye
  # of GNOME) won't be fooled
  jhead -norot "${f}_r".jpg 
fi

unset FILE ROT f 
}

Zobacz też HOWTO: Rotate JPG images in GNOME's Nautilus File Manager.

Podobnie skrypt dodający informacje dotyczące autora/licencji zmieniłem na program w Perlu wykorzystujący doskonały moduł Image::ExifTool zamiast exiv2:

#!/usr/bin/perl -w
# Wykorzystnie: $0 [-l licencja ][-c autor] plik1 plik2 ...
use strict;
use Image::ExifTool;
use Getopt::Long;

my $credentials = "Creator: Tomasz Przechlewski";
my $license_stmt = "Licence: CC Attribution";
my $help = 0;

GetOptions( 'help' => \$help,
    'credentials=s' => \$credentials,
    'license=s' => \$license_stmt,);

if ($help) { print "$0 [-l cpr_notice][-c creator] file1 file2 ...\n"; exit 0 ;}

my $eT = new Image::ExifTool; 

while( my $photo = shift @ARGV ) {
  $eT->ExtractInfo($photo);

  #add_more_exif($exifTool);
  $eT->SetNewValue(Artist => "$credentials");
  $eT->SetNewValue(Copyright => "$license_stmt");

  # rewrite Photo to update Exif:
  
  $eT->WriteInfo($photo);
  print "Done: $photo $credentials $license_stmt\n";
}
## -- end --
url | Wed, 01/08/2007 23:00 | tagi: , , , ,