>> 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
Elka w wikicommons
Elka+Misiek disguised as Welsh Rugby Fans

Skrypt Erika Möllera , którego używałem do ładowania zdjęć na WikiCommons przestał działać. Konsultacja na stronie wykazała, że jest outdated and should be considered deprecated and useless. Program proponowany w zamian nie podoba mi się. Może i jest dobry, ale zbytnio się różni od poprzedniego a ja nie mam czasu go rozgryzać. Znalazłem za to poprawioną wersję skryptu Möllera, która działa, tutaj (lub tutaj).

Jest ciągle problem z kodowaniem (używam domyślnie ISO-8859-2), bo po przesłaniu na WC tekst jest niepoprawnie zakodowany. Metodą prób i błędów ustaliłem, że działa dopisanie na początku skryptu czegoś takiego:

binmode( STDOUT, ':utf8' );
use open IN => ':encoding(iso-8859-2)'; ## I am using legacy encoding, ha!
use open OUT => ':utf8'; ## write utf8

Opis zdjęcia w pliku tekstowym jest w ISO, po przesłaniu na WC kodowanie jest OK. Próbowałem wysyłać pliki kodowane jako UTF-8, ale to też nie działało (mój perl jest w wersji v5.8.8).

Rysunek obok znalazłem przypadkiem. Ktoś skopiował moje zdjęcie z flickr.com na WC dodając zabawny opis...

Przy okazji ustaliłem jak przejść do ,,trybu UTF'' otwierając nowy plik w Emacs: C-x C-m f utf-8

url | Fri, 24/04/2009 17:01 | 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: , , , ,