|
| meta-info i jpeg-billeder Fra : Henrik Bøgh |
Dato : 23-07-01 21:31 |
|
Når jeg tager et billede med mit digitalkamera ligger der en helt masse
information om hvilket blænde der er brugt o.s.v.
Jeg kunne godt tænke mig at kunne trække disse informationer ud i et
perl-script men syntes ikke jeg kan finde et modul der passer til opgaven.
Jeg har kigget på Image::Info (fundet på CPAN), men det kan vist ikke
rigtigt bruges.
Er der nogle der har et forslag til et modul der kan det?
--
` Med Venlig Hilsen | Regards
` H e n r i k B ø g h
` http://henrik.boegh.net/ ^ http://irc.linux.dk/
` - Don't trust a person who likes using SLRN
| |
Jesper Krogh (24-07-2001)
| Kommentar Fra : Jesper Krogh |
Dato : 24-07-01 15:11 |
|
| |
Henrik Bøgh (26-07-2001)
| Kommentar Fra : Henrik Bøgh |
Dato : 26-07-01 08:06 |
|
Jesper Krogh (krogh@mail1.stofanet.dk) expressed in
<Pine.LNX.4.21.0107241607010.23093-100000@krogh.stofanet.dk>:
[...]
> Den har en get comment funktion som måske kan bruges. Hvis du finder ud af
> noget vil jeg godt ha' en tilbagemelding da jeg selv skal ha' lavat et
Jeg droppede PerlMagick og brugte Adams forslag i stedet. Det virker
perfekt. I øvrigt: Kunne jeg få dig til at tage en kigger på
http://www.usenet.dk/netikette/quote.html .
--
` Med Venlig Hilsen | Regards
` H e n r i k B ø g h
` http://henrik.boegh.net/ ^ http://irc.linux.dk/
` - Don't trust a person who likes using SLRN
| |
Adam Sjøgren (24-07-2001)
| Kommentar Fra : Adam Sjøgren |
Dato : 24-07-01 18:13 |
|
On Mon, 23 Jul 2001 22:31:23 +0200, Henrik Bøgh wrote:
> Når jeg tager et billede med mit digitalkamera ligger der en helt
> masse information om hvilket blænde der er brugt o.s.v. Jeg kunne
> godt tænke mig at kunne trække disse informationer ud i et
> perl-script men syntes ikke jeg kan finde et modul der passer til
> opgaven. Jeg har kigget på Image::Info (fundet på CPAN), men det
> kan vist ikke rigtigt bruges.
Hvorfor ikke?
virgil $ perl -e '
use Image::Info qw(image_info);
use Data::Dumper;
my $i=image_info "pics/snaps/20010721/dscn1945.jpg";
print Dumper($i);'
$VAR1 = {
'FileSource' => 'b',
'MeteringMode' => 'Multi-segment',
'width' => 1600,
'ExposureProgram' => 'Program',
'ImageDescription' => '',
'UserComment' => '
',
'CoolPix-Tag-0x0f00' => [
2147500545,
18177,
33488896,
0,
1140739,
0,
47874,
23575,
60436,
60693,
60693,
4211869471,
20224,
3911778304,
4146689066,
975090727,
32779,
404029440,
25,
16777216,
394752,
1666973712,
88080384,
671437077,
553668917,
336799744,
2702123028,
16711745,
154296909,
53440
],
'CoolPix-ImageAdjustment' => 0,
'resolution' => '300 dpi',
'ExifImageLength' => 1200,
'CoolPix-Focus' => [
0,
0
],
'Flash' => 'No',
'Model' => 'E950',
'ExifImageWidth' => 1600,
'FNumber' => [
74,
10
],
'BitsPerSample' => [
8,
8,
8
],
'InteroperabilityIndex' => 'R98',
'MaxApertureValue' => [
26,
10
],
'CoolPix-Whitebalance' => 0,
'InteroperabilityVersion' => '0100',
'CoolPix-DigitalZoom' => '0',
'Make' => 'NIKON',
'LightSource' => 'Auto',
'DateTimeDigitized' => '2001:07:21 20:04:27',
'ComponentsConfiguration' => '`ab',
'SamplesPerPixel' => 3,
'file_media_type' => 'image/jpeg',
'ColorSpace' => 1,
'YCbCrPositioning' => 2,
'CompressedBitsPerPixel' => '2',
'DateTimeOriginal' => '2001:07:21 20:04:27',
'CoolPix-Tag-0x0002' => '08.00',
'Software' => 'v981p-78',
'ISOSpeedRatings' => 80,
'Orientation' => 'top_left',
'ExposureTime' => [
10,
1850
],
'CoolPix-ColorMode' => 1,
'SceneType' => '`',
'CoolPix-Tag-0x0009' => '',
'FocalLength' => [
72,
10
],
'ExifVersion' => '0210',
'ExposureBiasValue' => '0',
'CoolPix-Quality' => 11,
'FlashPixVersion' => '0100',
'color_type' => 'YCbCr',
'height' => 1200,
'CoolPix-Converter' => 0,
'file_ext' => 'jpg',
'DateTime' => '2001:07:21 20:04:27',
'JPEG_Type' => 'Baseline',
'ColorComponents' => [
[
'Y',
33,
0
],
[
'Cb',
17,
1
],
[
'Cr',
17,
1
],
[
'Y',
33,
0
],
[
'Cb',
17,
1
],
[
'Cr',
17,
1
]
],
'CoolPix-CCDSensitivity' => 0
};
virgil $
--
"Ok, so we didn't learn any big lesson. Sue me." Adam Sjøgren
"Live and don't learn, that's us." asjo@koldfront.dk
| |
Henrik Bøgh (26-07-2001)
| Kommentar Fra : Henrik Bøgh |
Dato : 26-07-01 08:04 |
|
Adam Sjøgren (asjo@koldfront.dk) expressed in
<87d76qz1wv.fsf@virgil.koldfront.dk>:
[...]
> print Dumper($i);'
Det var her jeg var galt på den. Jeg brugte bare $print $i; - nu virker det
på allersmukkeste vis. Mange tak :)
[...]
> asjo@koldfront.dk
--
` Med Venlig Hilsen | Regards
` H e n r i k B ø g h
` http://henrik.boegh.net/ ^ http://irc.linux.dk/
` - Don't trust a person who likes using SLRN
| |
Henrik Bøgh (08-08-2001)
| Kommentar Fra : Henrik Bøgh |
Dato : 08-08-01 21:25 |
|
"Adam Sjøgren" <asjo@koldfront.dk> wrote in message
news:87d76qz1wv.fsf@virgil.koldfront.dk...
> virgil $ perl -e '
> use Image::Info qw(image_info);
> use Data::Dumper;
> my $i=image_info "pics/snaps/20010721/dscn1945.jpg";
> print Dumper($i);'
Som tidligere skrevet virker dette fint. Tidligere har jeg også kunne bruge
en kombination af grep og awk til at isolere en enkelt værdi. Det kan jeg
bare ikke længere. Det burde kunne gøres i Perl.
$VAR1 = {
'Olympus-Tag-0x1001' => '5',
'Olympus-Tag-0x1002' => [
1056,
256
],
'Olympus-Tag-0x1003' => [
1035,
256
],
'MeteringMode' => 'Center weighted average',
'Olympus-Tag-0x1004' => 3,
'width' => 1280,
'Olympus-Tag-0x1005' => [
0,
0
],
'Olympus-Tag-0x0203' => 0,
'Olympus-Tag-0x1006' => '0',
'Olympus-Tag-0x1007' => 26,
'Olympus-Tag-0x0205' => [
1160,
100
],
'Olympus-Tag-0x0206' => [
38,
94,
121,
91,
218,
276
],
'ImageDescription' => 'OLYMPUS DIGITAL CAMERA',
'Olympus-Tag-0x1008' => 24,
[...]
}
Men hvis nu jeg gerne vil have isoleret en enkelt værdi - f.eks.
ImageDescriptions værdi (OLYMPUS DIGITAL CAMERA' og lagt i en variabl
hvordan gør jeg så det?
Hvad er $i og $VAR1 egentlig for nogle?
[...]
> --
> "Ok, so we didn't learn any big lesson. Sue me." Adam
Sjøgren
> "Live and don't learn, that's us."
asjo@koldfront.dk
| |
Adam Sjøgren (08-08-2001)
| Kommentar Fra : Adam Sjøgren |
Dato : 08-08-01 21:59 |
|
On Wed, 8 Aug 2001 22:25:02 +0200, Henrik Bøgh wrote:
>> my $i=image_info "pics/snaps/20010721/dscn1945.jpg";
> Men hvis nu jeg gerne vil have isoleret en enkelt værdi - f.eks.
> ImageDescriptions værdi (OLYMPUS DIGITAL CAMERA' og lagt i en
> variabl hvordan gør jeg så det?
Data-dumper skriver bare strukturen ud... det var den umiddelbart
nemmeste måde at synliggøre alle de informationer som Image::Info
giver.
Du kan se på typen af paranteserne (og/eller indholdet) hvad det er
for nogle strukturer.
$i er en hashref og ImageDescription er en af nøglerne, så for at få
værdien kopieret over i en anden variabel skriver man:
my $desc = $i->{ImageDescription};
(Der står i øvrigt i dokumentationen til Image::Info at image_info
returnerer en hashref).
Der kan sikkert læses mere med perldoc i "perldata", "perlreftut",
"perlref" og "Data::Dumper".
Mvh.
--
"Nobody: My name is Xamichee, "he who talks loud Adam Sjøgren
say nothing."" asjo@koldfront.dk
| |
|
|