Äkkiähän tuon tietysti itsekin väsäisi.
--
Eteenpäin, oi rokkaavat punajuuret!
Tuosta kun puukotat mieleisesi...
#!/usr/bin/perl -w
# usage: perl EXIFstats.pl tagname value
absolute_path_to_the_recursive_scan_start_directory]
#
# esim: perl EXIFstats.pl ISO 0 z:\kuvat
#
use strict;
use Image::ExifTool 'ImageInfo';
use File::Find;
use File::Basename;
my $cnt = 0;
my $sum;
my $exposuretime;
my $aperture;
my $focallength;
my $exifitem = $ARGV[0];
my $value = $ARGV[1];
shift;
shift;
print "\n\nLooking for $exifitem = $value\n";
print "============================\n";
sub findexiftag {
return unless $File::Find::name =~ /\.jpg$/i;
my $info = ImageInfo($File::Find::name);
if ( exists($info->{$exifitem}) ) {
$sum->{$info->{$exifitem}}++;
$exposuretime->{$info->{"ExposureTime"}}++;
$aperture->{$info->{"Aperture"}}++;
$focallength->{$info->{"FocalLength"}}++;
$cnt++;
my $temp = $info->{$exifitem};
if ($temp =~ /$value/) {
print basename($File::Find::name)." ";
print $info->{"ISOSetting"}."/";
print $info->{"ISO"}." ";
print $info->{"ExposureTime"}." ";
print $info->{"Aperture"}." ";
print $info->{"FocalLength"}.", ";
print $info->{"FocusDistance"}.", ";
print $info->{"FocusMode"}.", ";
print $info->{"AFPoint"}.", ";
print $info->{"ExposureProgram"}.", ";
print $info->{"MeteringMode"}.", ";
print "\n";
}
}
}
find(\&findexiftag, @ARGV);
print "\n\n$exifitem"." \n";
print "========================\n";
foreach (sort keys %$sum) {printf ("%-10s%6d %4.1f %%\n",
$_,$sum->{$_}, 100*$sum->{$_}/$cnt);}
print "\n\nExposureTime"." \n";
print "=======================\n";
foreach (sort keys %$exposuretime) {printf ("%-10s%6d %4.1f %%\n",
$_,$exposuretime->{$_}, 100*$exposuretime->{$_}/$cnt);}
print "\n\nAperture"." \n";
print "=======================\n";
foreach (sort keys %$aperture) {printf ("%-10s%6d %4.1f %%\n",
$_,$aperture->{$_}, 100*$aperture->{$_}/$cnt);}
print "\n\nFocallength"." \n";
print "=======================\n";
foreach (sort keys %$focallength) {printf ("%-10s%6d %4.1f %%\n",
$_,$focallength->{$_}, 100*$focallength->{$_}/$cnt);}
print "\n\nTotal ".$cnt." JPEG Files \n";
print "=======================\n";
Näppärä voisi olla myös koodinpätkä, joka piirtää graafin
päivämäärittäin otetuista kuvista. Eli x-akselilla päivät, y-akselilla
määrät (kpl/päivä). Löytyykö?
Jälleen kerran olisi kai helppo itsekin väkertää tekstidataa tuottava
skripti ja graafi vaikka exelillä, mutta... :)
--
-Markus Lehto
Photoshop Elements V3:ssa on tuollainen histogramminäyttö. Kai
nelosessakin, jota en ole nähnyt/kokeillut.
Simo S.
Kuulostaa melko raskaalta ratkaisulta... Ja kalliiltakin vielä,
verrattuna skripteihin. Mutta kiitän tiedosta.
--
-Markus Lehto
En tarkoittanutkaan että hankkisit PSE:n pelkästään tuon näytön takia,
mutta PSE:ssä on paljon muutakin hyvää. Tuosta postaamastani skriptistä
saa helposti version, joka tulostaa kuvauspäivämääriä ja kuvattujen
kuvien lukumääriä.
Simo S.
> Jomppa Koskinen wrote:
> > Löytyisikö sopivia työkaluja kuvakirjaston (kuvat jaoteltu
> > hakemistoihin) kuvaustietojen statistiikan kaivamiseen?
>
> Jälleen kerran olisi kai helppo itsekin väkertää tekstidataa tuottava
> skripti ja graafi vaikka exelillä, mutta... :)
>
Itse ajattelin tuota tänne lähetettyä skriptiä muokata ehkäpä myös
tuohon suuntaan (vaikka PSE minulla onkin). Ainakin tilastot
"kameroittain" (esim. polttovälitilasto täytyy olla kamerakohtainen)
yms. pitää tuohon lisätä. Onneksi näytti tuo koodi hyvin helposti
laajennettavalta.
Kuvatiedostossa olevien EXIF-tagien nimet löytää tällä:
#!/usr/bin/perl -w
use Image::ExifTool 'ImageInfo';
my $file = shift or die "Please specify filename";
my $info = ImageInfo($file);
foreach ( sort keys %$info) {
print "$_ : $info->{$_}\n";
}
Jomppa Koskinen kirjoitti:
> Jomppa Koskinen wrote:
> > Onneksi näytti tuo koodi hyvin helposti
> > laajennettavalta.
> >
>
> Kuvatiedostossa olevien EXIF-tagien nimet löytää tällä:
Kiitos vain valmiista pätkästä (joka näemmä on myös exiftoolin
kotisivulla, kun tarkemmin katsoo), vaikka olen kyllä itsekin perliä
koodannut.
Tuon ExifTool-paketin mukana tulee joku komentorivihärpäke, jolla
noita tageja voi tietty myös katsoa.
Cygwinin asennuksessakin on vastaava paketti (exif)
>
> Kiitos vain valmiista pätkästä (joka näemmä on myös exiftoolin
> kotisivulla, kun tarkemmin katsoo), vaikka olen kyllä itsekin perliä
> koodannut.
>
mä en oo mitään itse "keksinyt" -- prujaaminen ja koodin kierrätys on
"kustannustehokasta" =d
Simo S.