/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
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

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste