| Panotools-Script documentation | Contained in the Panotools-Script distribution. |
Panotools::Script::Line::ImageMetadata - hugin input image metadata
A single input image is described by an 'i' line, this is optionally prefixed by a '#-hugin' line containing metadata in a key=value format
| Panotools-Script documentation | Contained in the Panotools-Script distribution. |
package Panotools::Script::Line::ImageMetadata; use strict; use warnings; use Panotools::Script::Line; use vars qw /@ISA/; @ISA = qw /Panotools::Script::Line/;
sub Assemble { my $self = shift; $self->_sanitise; my @tokens; for my $entry (sort keys %{$self}) { if ($entry eq "disabled") { push @tokens, $entry; } else { push @tokens, $entry .'='. $self->{$entry}; } } return (join ' ', ($self->Identifier, @tokens)) ."\n" if (@tokens); return ''; } sub _defaults { my $self = shift; } sub _valid { return '^([^=]+)(?:=(.*)|)$' } sub Identifier { my $self = shift; return "#-hugin"; } sub _sanitise { my $self = shift; my $valid = $self->_valid; for my $key (keys %{$self}) { delete $self->{$key} unless ( grep /$valid/, "$key=" || grep /$valid/, "$key" ); } } sub Report { my $self = shift; my @report; for my $entry (sort keys %{$self}) { if ($entry eq "disabled") { push @report, ["State",$entry]; } else { my @tokens = $entry =~ /(^[a-z]+|[A-Z][a-z]+|[A-Z][A-Z]+(?=[A-Z][a-z]))/g; my $name = join ' ', @tokens; push @report, [$name, $self->{$entry}] unless ($self->{$entry} =~ /false/i); } } [@report]; } 1;