view release on metacpan or search on metacpan
lib/Audio/Analyzer/ToneDetect.pm view on Meta::CPAN
Audio::Analyzer::ToneDetect - Detect freq of tones in an audio file or stream
=begin HTML
<a href="https://travis-ci.org/mikegrb/Audio-Analyzer-ToneDetect"><img src="https://api.travis-ci.org/mikegrb/Audio-Analyzer-ToneDetect.png" width="77" height="19" alt="Build Status" /></a>
=end HTML
=head1 SYNOPSIS
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Audio/C4Stream/Wav.pm view on Meta::CPAN
data_len => $read->length_seconds,
font => 'fonts/ arialbd . ttf '
}
);
my $png;
WAV_draw( $wavDraw, 634, 77 * 2 + 2 + 6, $png );
WAV_final_draw($wavDraw);
return $png;
}
sub getNextRawData {
my $this = shift;
lib/Audio/C4Stream/Wav.pm view on Meta::CPAN
int xtmp = 0, ytmp = 0, lx, ly1 = 0, ly2 = 0;
int draw1, draw2, pos;
int limit, mlimit1, mlimit2;
double step, curr;
char *font = "fonts/db.ttf";
char *png_ptr, *err;
int brect[8];
if ((im = gdImageCreate(width, height)) == NULL) {
fprintf(stderr, "gdImageCreate failed");
return NULL;
lib/Audio/C4Stream/Wav.pm view on Meta::CPAN
gdImageLine(im, 1, mlimit2 + height / 8 + 1, width - 2, mlimit2 + height / 8 + 1, gdStyled);
gdImageLine(im, 1, mlimit2 - height / 8 + 1, width - 2, mlimit2 - height / 8 + 1, gdStyled);
gdImageLine(im, 1, mlimit1 + height / 8 - 1, width - 2, mlimit1 + height / 8 - 1, gdStyled);
png_ptr = gdImagePngPtr(im, size);
lseek (draw->reader->fd, pos, 0);
return png_ptr;
}
int WAV_draw (int draw_ptr, int width, int height, SV *png) {
char *png_ptr;
int size;
if ((png_ptr = wav_draw ((struct wav_draw_s *) draw_ptr, width, height, &size)) == NULL) {
return 0;
}
sv_setpvn(png, png_ptr, size);
return size;
}
view all matches for this distribution
view release on metacpan or search on metacpan
DB/Reports.pm view on Meta::CPAN
}
$xoffset += $boxwidth;
print STDERR join("\t",$year,$total,$x1,$y1,$x2,$y2),"\n" if DEBUG
}
my $string = $im->png;
return $string;
}
=pod
view all matches for this distribution
view release on metacpan or search on metacpan
libsamplerate/doc/Makefile.am
libsamplerate/doc/Makefile.in
libsamplerate/doc/NEWS
libsamplerate/doc/quality.html
libsamplerate/doc/SRC.css
libsamplerate/doc/SRC.png
libsamplerate/doc/win32.html
libsamplerate/examples/audio_out.c
libsamplerate/examples/audio_out.h
libsamplerate/examples/Makefile.am
libsamplerate/examples/Makefile.in
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Audio/M4P/QuickTime.pm view on Meta::CPAN
# add a single album cover by EITHER adding one covr atom
# OR adding one cover's data to an existing covr atom
# takes a argument which should be a compatible graphic format binary
# but does NO checks for compatibility with iTunes' cover art display
# type OUGHT TO BE 13 for jpeg, 14 for png graphics format,
# but method DOES NOT CHECK for type except will default to 13
# if no type argument provided
sub AddCoverArt {
my ($self, $art, $type) = @_;
$type = 13 unless $type;
lib/Audio/M4P/QuickTime.pm view on Meta::CPAN
=item B<AddCoverArt>
$qt->AddCoverArt( $jpeg_art, 13 ); # $jpeg_art is an iTunes compatible jpeg
$qt->AddCoverArt( $jpeg_art ); # the same as above, defaults to type 13
$qt->AddCoverArt( $png_art, 14 ); # PNG graphics are data type 14
Add cover artwork to the file. Creates a new covr atom if needed. Returns 1 if
successful, otherwise null.
The method adds a single album cover by either adding one covr atom or
by adding one cover's data to an existing covr atom. Takes a argument which
should be a compatible graphic format binary, but does NO checks for
compatibility with iTunes' cover art display. The type should be 13
for jpeg, 14 for png graphics format, but defaults to 13.
=back
=head2 MP3::Tag and Audio::TagLib Compatible Functions
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Audio/Nama/Waveform.pm view on Meta::CPAN
# keyed to the
# + name of the WAV file
# + name of project
# + start and end times
# the get_png() method will find or generate the appropriate PNG
# files are of the form # sax_1.wav.1200x200-10.png
# where the numbers correspond to width and height in pixels of the audio
# waveform image, and the x-scaling in pixels per second (default 10)
sub new {
my $class = shift;
lib/Audio/Nama/Waveform.pm view on Meta::CPAN
}
# utility subroutine
sub waveform_name {
my($path, $width, $height, $pixels, $start, $end) = @_;
"$path." . $width . 'x' . "$height-$pixels" . region_def($start,$end) . ".png"
}
sub region_def {}
sub find_waveform {
my $self = shift;
my $match = shift() // '*';
my @files = File::Find::Rule->file()
->name( $self->wav . ".$match.png" )
->in( Audio::Nama::this_wav_dir() );
@files;
}
sub get_waveform {
my $self = shift;
lib/Audio/Nama/Waveform.pm view on Meta::CPAN
$waveform or $self->generate_waveform;
}
sub display {
my $self = shift;
my ($waveform) = $self->get_waveform;
my $widget = $gui->{ww}->Photo(-format => 'png', -file => $waveform);
$gui->{waveform}{$self->track->name} = []; # unused?
$gui->{wwcanvas}->createImage( 0,
$self->y_offset_multiplier * $config->{waveform_height},
-anchor => 'nw',
-tags => ['waveform', $self->track->name],
lib/Audio/Nama/Waveform.pm view on Meta::CPAN
1 # obligatory
__END__
=comment
Usage: waveform [options] source_audio [ouput.png]
-W, --width WIDTH Width (in pixels) of generated waveform image -- Default 1800.
-H, --height HEIGHT Height (in pixels) of generated waveform image -- Default 280.
-c, --color COLOR Color (hex code) to draw the waveform. Can also pass 'transparent' to cut it out of the background -- Default #00ccff.
-b, --background COLOR Background color (hex code) to draw waveform on -- Default #666666.
-m, --method METHOD Wave analyzation method (can be 'peak' or 'rms') -- Default 'peak'.
view all matches for this distribution
view release on metacpan or search on metacpan
eg/wobbleBass.pl view on Meta::CPAN
# my $sample = $p{gen}->();
# push @sample_cache, $sample;
# unless(++$sample_count % 80000) {
# say "Writing graph!";
# $c->add_data('Samples', \@sample_cache);
# $c->write_output('vis.png');
# @sample_cache = ();
# say "OK... done with that.";
# }
# return $sample;
# }
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Audio/Opusfile/PictureTag.pm view on Meta::CPAN
my $of = Audio::Opusfile->new_from_file('file.opus');
my @pic_tags = $of->tags->query_all('METADATA_BLOCK_PICTURE');
my @pictures = map { Audio::Opusfile::PictureTag->parse($_) } @pic_tags;
my $pic = $pictures[0];
say $pic->type; # Prints "3", which means Cover (front)
say $pic->mime_type; # Prints "image/png"
say $pic->description;
say $pic->width;
say $pic->height;
say $pic->depth;
say $pic->colors;
view all matches for this distribution
view release on metacpan or search on metacpan
t/mp3/v2.3.mp3
t/mp3/v2.4-ape-invalid-key.mp3
t/mp3/v2.4-ape.mp3
t/mp3/v2.4-apic-jpg.mp3
t/mp3/v2.4-apic-multiple.mp3
t/mp3/v2.4-apic-png.mp3
t/mp3/v2.4-apic-unsync.mp3
t/mp3/v2.4-compressed-frame.mp3
t/mp3/v2.4-corrupt-frame.mp3
t/mp3/v2.4-empty-text.mp3
t/mp3/v2.4-encrypted-frame.mp3
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Audio/TagLib/ID3v2/AttachedPictureFrame.pm view on Meta::CPAN
see I<description()>
=item I<L<String|Audio::TagLib::String> mimeType()>
Returns the mime type of the image. This should in most cases be
"image/png" or "image/jpeg".
=item I<void setMimeType(L<String|Audio::TagLib::String> $m)>
Sets the mime type of the image. This should in most cases be
"image/png" or "image/jpeg".
=item I<PV type()>
Returns the type of the image.
view all matches for this distribution
view release on metacpan or search on metacpan
META.json
META.yml
Makefile.PL
README.md
examples/css/images/animated-overlay.gif
examples/css/images/ui-bg_flat_0_aaaaaa_40x100.png
examples/css/images/ui-bg_flat_75_ffffff_40x100.png
examples/css/images/ui-bg_glass_55_fbf9ee_1x400.png
examples/css/images/ui-bg_glass_65_ffffff_1x400.png
examples/css/images/ui-bg_glass_75_dadada_1x400.png
examples/css/images/ui-bg_glass_75_e6e6e6_1x400.png
examples/css/images/ui-bg_glass_95_fef1ec_1x400.png
examples/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png
examples/css/images/ui-icons_222222_256x240.png
examples/css/images/ui-icons_2e83ff_256x240.png
examples/css/images/ui-icons_454545_256x240.png
examples/css/images/ui-icons_888888_256x240.png
examples/css/images/ui-icons_cd0a0a_256x240.png
examples/css/jquery-ui-1.10.2.custom.css
examples/css/jquery-ui-1.10.2.custom.min.css
examples/css/results.css
examples/css/search.css
examples/index.cgi
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Auth/GoogleAuthenticator.pm view on Meta::CPAN
version => 1,
level => 'M',
casesensitive => 1,
);
my $img = $qrcode->plot($self->registration_url($label, $type));
$img->write( data => \my $res, type => 'png' );
$res
}
sub registration_key {
return encode_base32( $_[0]->{secret} );
view all matches for this distribution
view release on metacpan or search on metacpan
sub type
{
ref(my $self = shift) or croak "instance variable needed";
if (@_)
{
if ($_[0] =~ /^(jpg|png|gif|image|picture)$/i)
{
$self->{_type} = 'image';
} elsif ($_[0] =~ /^(sound|snd|wav|mp3)$/i) {
$self->{_type} = 'sound';
}
{
$line =~ s/\n//;
my ($data_time,$data_token,$data_code) = $line =~ m/(^\d+)::([a-f0-9]{32})::(.*)$/
or next;
my $png_file = File::Spec->catfile($self->output_folder(),$data_token . ".png");
if ($data_token eq $token)
{
# the token was found in the database
if (($current_time - $data_time) > $self->expire())
warn "No Match: " . $data_token . " And " . $token . "\n" if($self->debug() >= 2);
# solution was wrong, not expired, and we're keeping failures
$new_data .= $line."\n";
} else {
# remove the found token so it can't be used again
warn "Unlink File: " . $png_file . "\n" if($self->debug() >= 2);
unlink($png_file) or carp("Can't remove png file [$png_file]\n");
}
if ( $return_value == -2 ) {
# incorrect solution
$return_value = -3;
}
} elsif (($current_time - $data_time) > $self->expire()) {
# removed expired token
warn "Removing Expired Crypt File: " . $png_file ."\n" if($self->debug() >= 2);
unlink($png_file) or carp("Can't remove png file [$png_file]\n");
} else {
# token not found or expired, keep it
$new_data .= $line."\n";
}
}
my ($data_time,$data_token,$data_code) = $line =~ m/(^\d+)::([a-f0-9]{32})::(.*)$/
or next;
if ( (($current_time - $data_time) > ($self->expire())) ||
($data_token eq $token) )
{ # remove expired captcha, or a dup
my $png_file = File::Spec->catfile($self->output_folder(),$data_token . ".png");
unlink($png_file) or carp("Can't remove png file [$png_file]\n");
} else {
$new_data .= $line."\n";
}
}
# copy the character images into the code graphic
for(my $i=0; $i < $length; $i++)
{
my $letter = substr($code,$i,1);
my $letter_png = File::Spec->catfile($self->images_folder(),$letter . ".png");
my $source = new GD::Image($letter_png);
$im->copy($source,($i*($self->width()),0,0,0,$self->width(),$self->height()));
my $a = int(rand (int(($self->width())/14)))+0;
my $b = int(rand (int(($self->height())/12)))+0;
my $c = int(rand (int(($self->width())/3)))-(int(($self->width())/5));
my $d = int(rand (int(($self->height())/3)))-(int(($self->height())/5));
}
}
# generate a background
my $a = int(rand 5)+1;
my $background_img = File::Spec->catfile($self->images_folder(),"background" . $a . ".png");
my $source = new GD::Image($background_img);
my ($background_width,$background_height) = $source->getBounds();
my $b = int(rand (int($background_width/13)))+0;
my $c = int(rand (int($background_height/7)))+0;
my $d = int(rand (int($background_width/13)))+0;
# add a border
$im->rectangle(0,0,((($length)*($self->width()))-1),(($self->height())-1),$black);
# save the image to file
my $png_data = $im->png;
return \$png_data;
}
sub create_sound_file
{
ref(my $self = shift) or croak "instance variable needed";
my ($captcha_data_ref,$output_filename);
if ($self->type() eq 'image')
{
$captcha_data_ref = $self->create_image_file($code);
$output_filename = File::Spec->catfile($self->output_folder(),$token . ".png");
} elsif ($self->type() eq 'sound') {
$captcha_data_ref = $self->create_sound_file($code);
$output_filename = File::Spec->catfile($self->output_folder(),$token . ".wav");
} else {
croak "invalid captcha type [" . $self->type() . "]";
my $captcha = Authen::Captcha->new(
data_folder => '/some/folder',
output_folder => '/some/http/folder',
);
# create a captcha. Image filename is "$token.png"
my $token = $captcha->generate_code($number_of_characters);
# check for a valid submitted captcha
# $code is the submitted letter combination guess from the user
# $token is the submitted token from the user (that we gave them)
=back
=item C<$token = $captcha-E<gt>generate_code( $number_of_characters );>
Creates a captcha. Image filename is "$token.png"
It can also be called in array context to retrieve the string of characters used to generate the captcha (the string the user is expected to respond with). This is useful for debugging.
ex.
C<($token,$chars) = $captcha-E<gt>generate_code( $number_of_characters );>
Required. Sets the directory to hold the generated Captcha image files. This is usually a web accessible directory so that the user can view the images in here, but it doesn't have to be web accessible (you could be attaching the images to an e-mail ...
Must be writable by the process running the script (usually the web server user, which is usually either "apache" or "http").
=item C<$captcha-E<gt>images_folder( '/some/folder' );>
Optional, and may greatly affect the results... use with caution. Allows you to override the default character graphic png's and backgrounds with your own set of graphics. These are used in the generation of the final captcha image file. The defaults...
[lib install dir]/Authen/Captcha/images
=item C<$captcha-E<gt>expire( 300 );>
Optional. Sets the number of seconds this captcha will remain valid. This means that the created captcha's will not remain valid forever, just as long as you want them to be active. Set to an appropriate value for your application. Defaults to 300.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Authen/PluggableCaptcha.pm view on Meta::CPAN
+++| create a better way to make attributes shared stored and accessed
++ | Imager does not have facilities right now to do a 'sine warp' easily. figure some sort of text warping for the imager module.
++ | Port the rendering portions of cpan gd/imagemagick captchas to Img::(GD|ImageMagick)
++ | Img::Imager make the default font more of a default
++ | Img::Imager add in support to render each letter seperately w/a different font/size
+ | Img::Imager better handle as_string/save + support for png format etc
- | is there a way to make the default font more cross platform?
-- | add a sound plugin ( text-logic might render that a trivial enhancement depending on how obfuscation treats display )
=head1 STYLE GUIDE
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Authen/SASL/Perl/NTLM.pm view on Meta::CPAN
Authen::SASL::Perl::NTLM - NTLM authentication plugin for Authen::SASL
=for html
<a href="https://travis-ci.org/stevenl/Authen-SASL-Perl-NTLM"><img src="https://travis-ci.org/stevenl/Authen-SASL-Perl-NTLM.svg?branch=master" alt="Build Status"></a>
<a href='https://coveralls.io/r/stevenl/Authen-SASL-Perl-NTLM?branch=master'><img src='https://coveralls.io/repos/stevenl/Authen-SASL-Perl-NTLM/badge.png?branch=master' alt='Coverage Status' /></a>
=head1 VERSION
version 0.003
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Authen/Simple/WebForm.pm view on Meta::CPAN
Example: (pose as netscape)
extra_headers => [
'User-Agent' => 'Mozilla/4.76 [en] (Win98; U)',
'Accept' => 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*',
'Accept-Charset' => 'iso-8859-1,*,utf-8',
'Accept-Language' => 'en-US'
],
None submitted by default.
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Authen/TOTP.pm view on Meta::CPAN
lightcolor => Imager::Color->new(255, 255, 255),
darkcolor => Imager::Color->new(0, 0, 0),
);
my $img = $qrcode->plot($uri);
$img->write(file => "totp.png", type => "png");
#...or you can pass it to google charts and be done with it
#compare user's OTP with computed one
if ($gen->validate_otp(otp => <user_input>, secret => <stored_secret>, tolerance => 1)) {
#2FA success
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Authen/U2F.pm view on Meta::CPAN
=pod
=encoding UTF-8
=for markdown [](http://travis-ci.org/robn/Authen-U2F)
=head1 NAME
Authen-U2F - FIDO U2F library
view all matches for this distribution
view release on metacpan or search on metacpan
t/03-Interop-tests.t view on Meta::CPAN
# Auth RSA key
my $val = $webauthn->validate_assertion(
challenge_b64 =>
"iPmAi1Pp1XL6oAgq3PWZtZPnZa1zFUDoGbaQ0_KvVG1lF2s3Rt_3o4uSzccy0tmcTIpTTT4BU1T-I4maavndjQ",
credential_pubkey_b64 =>
"pAEDAzkBACBZAQDfV20epzvQP-HtcdDpX-cGzdOxy73WQEvsU7Dnr9UWJophEfpngouvgnRLXaEUn_d8HGkp_HIx8rrpkx4BVs6X_B6ZjhLlezjIdJbLbVeb92BaEsmNn1HW2N9Xj2QM8cH-yx28_vCjf82ahQ9gyAr552Bn96G22n8jqFRQKdVpO-f-bvpvaP3IQ9F5LCX7CUaxptgbog1SFO6FI6ob5SlVVB00lVXsaYg8cIDZxCkkE...
stored_sign_count => 0,
requested_uv => 1,
client_data_json_b64 =>
"eyJ0eXBlIjoid2ViYXV0aG4uZ2V0IiwiY2hhbGxlbmdlIjoiaVBtQWkxUHAxWEw2b0FncTNQV1p0WlBuWmExekZVRG9HYmFRMF9LdlZHMWxGMnMzUnRfM280dVN6Y2N5MHRtY1RJcFRUVDRCVTFULUk0bWFhdm5kalEiLCJvcmlnaW4iOiJodHRwOi8vbG9jYWxob3N0OjUwMDAiLCJjcm9zc09yaWdpbiI6ZmFsc2V9",
authenticator_data_b64 =>
view all matches for this distribution
view release on metacpan or search on metacpan
bin/autoconf-template-perl view on Meta::CPAN
perl_scripts => ['pl'],
cgi_scripts => ['cgi'],
bash_scripts => ['sh'],
html_files => ['html'],
css_files => ['css'],
image_files => [qw(png gif jpg jpeg)],
javascript_files => ['js'],
config_files => [qw(json ini cfg yaml)],
);
my @exclude_files = @{ $options->{'exclude-files'} };
bin/autoconf-template-perl view on Meta::CPAN
my %html_files = (
html => [ 'htdocs', ['html'] ],
javascript => [ 'javascript', ['js'] ],
css => [ 'css', ['css'] ],
image => [ 'image', [qw(png gif jpeg jpg)] ],
);
foreach ( keys %html_files ) {
my $file_list = $_ . '_files';
view all matches for this distribution
view release on metacpan or search on metacpan
autodia.pl -O : output to stdout
autodia.pl -l language : parse source as language (ie: C) and look for appropriate filename extensions if also -d
autodia.pl -t templatefile : use templatefile as template (otherwise uses default)
autodia.pl -l DBI -i "mysql:test:localhost" -U username -P password : use the test database on localhost with username and password as username and password
autodia.pl -l Mason -i "/index.html" -p comp_root -G '\$c' : use HTML::Mason to fetch /index.html from comp_root and show all components in reach. -G corresponds to allow_globals.
autodia.pl -z : use graphviz to produce dot, gif, jpg or png output
autodia.pl -Z : use springgraph to produce png output
autodia.pl -v : use vcg to output postscript
autodia.pl -D : ignore dependancies (ie do not process or display dependancies)
autodia.pl -K : process dependance but do not display in output
autodia.pl -k : process inheritance but do not display in output
autodia.pl -S : silent mode, no output to stdout except with -O
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
){
if( ! $self->input_file_with_images($params->{$ak}) ){ print STDERR perl2dump($params->{$ak})."${whoami} (via $parent), line ".__LINE__." : error, failed to load input images from file containing their pathnames: '".$params->{$ak}."'.\n"; return un...
}
# input images can be specified via a pattern and a search dir
# like : 'input-pattern' => ['*.png', '/x/y/searchdir']
$ak = 'input-pattern';
if( exists($params->{$ak}) && defined($params->{$ak}) ){
if( ref($params->{$ak})ne'ARRAY' ){ print STDERR perl2dump($params->{$ak})."${whoami} (via $parent), line ".__LINE__." : error, the argument to '$ak' must be an ARRAYref of 1 or 2 items: the pattern and optionally the search dir. See above for what...
if( ! $self->input_pattern($params->{$ak}) ){ print STDERR perl2dump($params->{$ak})."${whoami} (via $parent), line ".__LINE__." : error, failed to find input files based on the above pattern and search dir.\n"; return undef }
}
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
} close $fh;
return 1
}
sub clear_input_images { $#{ $_[0]->{'input-images'} } = -1 }
# Add using a single pattern/searchdir
# add image files via a pattern and an input dir, e.g. '*.png', '/x/y/z/'
# make sure that the order you expect is what you get during the pattern materialisation
# the search dir is optional, default is Cwd::cwd
sub input_pattern {
my ($self, $params) = @_;
my $parent = ( caller(1) )[3] || "N/A";
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
my $aaFFobj = Automate::Animate::FFmpeg->new({
# specify input images in any of these 4 ways or a combination:
# 1) by specifying each input image (in the order to appear)
# in an ARRAYref
'input-images' => [
'/xyz/abc/im1.png',
'/xyz/abc/im2.png',
...
],
# 2) by specifying an input pattern (glob or regex)
# and optional search path
'input-pattern' => ['*.png', './'],
# 3) by specifying an ARRAY of input patterns
# (see above)
'input-patterns' => [
['*.tiff'],
# specify a regex to filter-in all files under search dir
# NOTE: observe the escaping rules for each quotation method you use
[qw!regex(/photos2023-.+?\\.png/i)!, 'abc/xyz'],
],
# 4) by specifying a file which contains filenames
# of the input images.
'input-images-from-file' => 'file-containing-a-list-of-pathnames-to-images.txt',
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
# optionally add some extra params to FFmpeg as an arrayref
$aaFF->ffmpeg_extra_params(['-x', 'abc', '-y', 1, 2, 3]);
# you can also add images here, order is important
$aaFF->input_images(['img1.png', 'img2.png']) or die;
# or add images via a search pattern and optional search dir
$aaFF->input_pattern(['*.png', './']);
# or add images via multiple search patterns
$aaFF->input_patterns([
['*.png', './'],
['*.jpg', '/images'],
['*.tiff'], # this defaults to current dir
]) or die;
# and make the animation:
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
All arguments are supplied via a hashref with the following keys:
=over 4
=item * C<input-images> : an array of pathnames to input images. Image types can be what ffmpeg understands: png, jpeg, tiff, and lots more.
=item * C<input-pattern> : an arrayref of 1 or 2 items. The first item is the pattern
which complies to what L<File::Find::Rule> understands (See [https://metacpan.org/pod/File::Find::Rule#Matching-Rules]).
For example C<*.png>, regular expressions can be passed by enclosing them in C<regex(/.../modifiers)>
and should include the C<//>. Modifiers can be after the last C</>. For example C<regex(/\.(mp3|ogg)$/i)>.
The optional second parameter is the search path. If not specified, the current working dir will be used.
Note that there is no implicit or explicit C<eval()> in compiling the user-specified
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
which is optional -- default being C<Cwd::cwd> (current working dir).
So, C<$m> is an array ref of one or two items. The first is the search
pattern and the optional second is the search path, defaulting to the current
working dir.
The pattern (C<$m-E<gt>[0]>) can be a shell wildcard, e.g. C<*.png>,
or a regex specified as C<regex(/REGEX-HERE/modifiers)>, for example
C<regex(/\.(mp3|ogg)$/i)> Both shell wildcards and regular expressions
must comply with what L<File::Find::Rule> expects, see [https://metacpan.org/pod/File::Find::Rule#Matching-Rules].
The results of the search will be added to the list of input images
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
when filenames contain unicode characters. Consider
these orderings for example:
=over 2
=item * C<blue.png, κίÏÏινο.png, red.png>,
=item * C<blue.png, γάμμα.png, κίÏÏινο.png, red.png>,
=item * C<blue.png, κίÏÏινο.png, γαμμα.png red.png>,
=back
Return value:
lib/Automate/Animate/FFmpeg.pm view on Meta::CPAN
Default is 0.]
As an example,
automate-animate-ffmpeg.pl \
--input-pattern '*.png' 't/t-data/images' \
--output-filename out.mp4 \
--frame-duration 3.5
# or
automate-animate-ffmpeg.pl \
--input-pattern 'regex(/.+?.png/i)' \
--output-filename out.mp4 \
--frame-duration 3.5
=head2 UNICODE FILENAMES
view all matches for this distribution
view release on metacpan or search on metacpan
webstuff/docbook.xsl view on Meta::CPAN
</xsl:template>
<xsl:template match="ulink" mode="docbook">
<a href="{@url}">
<xsl:apply-templates mode="docbook"/>
</a><img src="/img/out.png"/>
</xsl:template>
<xsl:template match="xref" mode="docbook">
<a href="#{@linkend}">
<xsl:apply-templates mode="docbook"/>
view all matches for this distribution
view release on metacpan or search on metacpan
demo/moewiki/edit.xsl
demo/moewiki/global.xsl
demo/moewiki/index.xml
demo/spod5/index.pod
demo/spod5/ui/default/axon_logo_500_fade.gif
demo/spod5/ui/default/axon_logo_500_fade.png
demo/spod5/ui/default/blank.gif
demo/spod5/ui/default/bodybg.gif
demo/spod5/ui/default/framing.css
demo/spod5/ui/default/iepngfix.htc
demo/spod5/ui/default/opera.css
demo/spod5/ui/default/outline.css
demo/spod5/ui/default/pretty.css
demo/spod5/ui/default/print.css
demo/spod5/ui/default/s5-core.css
demo/spod5/ui/default/slides.css
demo/spod5/ui/default/slides.js
demo/spod5/ui/i18n/00_head.txt
demo/spod5/ui/i18n/bg-shade.png
demo/spod5/ui/i18n/bg-slide.jpg
demo/spod5/ui/i18n/framing.css
demo/spod5/ui/i18n/pretty.css
demo/spod5/ui/i18n/s5-core.css
demo/spod5/ui/i18n/slides.css
view all matches for this distribution
view release on metacpan or search on metacpan
ramblings/revert-B-load-BEGIN-517-B141.patch
ramblings/rperl.md
ramblings/runtime.porting
ramblings/yapc_bratislava08.pod
ramblings/yapceu2015.html
ramblings/yapceu2015/B-C.m0.png
ramblings/yapceu2015/B-C.p0.png
ramblings/yapceu2015/B-C.p1.png
ramblings/yapceu_2010.pod
regen_lib.pl
script/assemble
script/buildcc.PL
script/cc_harness
view all matches for this distribution
view release on metacpan or search on metacpan
[](https://travis-ci.org/rocky/p5-B-DeparseTree)
Synopsis
--------
Perl's B::Deparse but we save abstract tree information and associate
view all matches for this distribution
view release on metacpan or search on metacpan
lib/BATsh/SH.pm view on Meta::CPAN
# to fall through to its ordinary, literal meaning for that character).
#
# !(list) is approximated as "any run of characters that never forms a
# complete match of one of the alternatives" via a negative lookahead
# repeated per character; this matches the common "exclude these whole
# patterns" usage (e.g. !(*.jpg|*.png)) but, unlike real extglob, is not
# exact when !(...) is combined with more pattern after it in the same
# glob -- documented as a known limitation.
# ----------------------------------------------------------------
sub _extglob_scan {
my ($chars_ref, $i, $convert_sub) = @_;
lib/BATsh/SH.pm view on Meta::CPAN
shopt extglob # query; "shopt" alone lists all known options
shopt -p extglob # print in "shopt -s/-u extglob" form
case $f in
@(*.tar.gz|*.tgz)) echo archive ;;
!(*.jpg|*.png)) echo not-an-image ;;
esac
echo ${name%%+([0-9])} # strip a trailing run of digits
While C<shopt -s extglob> is active, C<?(list)>, C<*(list)>, C<+(list)>,
lib/BATsh/SH.pm view on Meta::CPAN
=item *
Extglob operators are recognised in case patterns and in the
C<${VAR#pat}>-family parameter-expansion patterns only. Pathname
(filename) globbing (C<echo *.@(jpg|png)>) does not expand them: an
unquoted C<(> C<)> is read by the line parser as a subshell command
group long before the word reaches the pathname matcher.
=item *
view all matches for this distribution