Publicité

Récemment j’ai été confronté à un petit problème tout simple. Je voulais avoir un compteur d’image en surimpression d’une vidéo. Avec kdenlive sous Linux je ne trouvais pas mon bonheur. Alors j’ai décidé de le fabriquer tout seul comme un grand.

Je me suis donc lancé tout d'abord avec PHP et GD. Le résultat n’étant pas à la hauteur de mes espérances j’ai donc fini avec ImageMagick, toujours sous php. Il est bon de savoir que Imagemagick est plutôt utilisé en ligne de commande.

 

Le but étant de créer une suite d’image que j’assemblerais dans kdenlive. Je vais donc créer des images avec transparences, 1 par Image de film

Pour le programme il s’agit d’un compteur pour 10 secondes en 25 images/seconde.

 

la version GD

voici le script php pour GD et sous linux Ubuntu (ensuite on utilise la command php -f moncfichier.php )

Les images sont créées dans /tmp

/*****
créer un compteur vidéo en php et GD
Jerome BAPTISTE
2013
*/
<?php
header ('Content-Type: image/png');
$im = @imagecreatetruecolor(1280, 720)
      or die('Impossible de crée un flux d\'image GD');
$text_color = imagecolorallocate($im, 255,224,0);
$format = '00:%1$02d:%2$02d';
$fformat = 'chrono_%1$02d_%2$02d.png';
$fontfile = '/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf';
$black = imagecolorallocate($im, 0, 0, 0);
$nbimageps = 25;
$duree = 10;
// On rend l'arrière-plan transparent
for ($i=0;$i<=$duree;$i++) {
    for ($j=1;$j<=$nbimageps;$j++) {
        //on masque la zone (on l'efface sinon ça se superpose)
        imagefilledrectangle ( $im , 890 , 600 ,1250 ,690 ,  $black );
        //on rend l'image transparente
        imagecolortransparent($im, $black);
        $filename = sprintf($fformat, $i, $j);
        echo $chrono = sprintf($format, $i, $j);
        //imagestring($im, 1, 930, 700, $chrono, $text_color);
        imagettftext ($im, 60 ,0 ,890 ,690 , $text_color , $fontfile , $chrono );
        imagepng($im,'/tmp/'.$filename);
    }
}
imagedestroy($im);
?> 

 

 

la version Image Magick - php

Pour image imagemagick il faut l’installer avec la commande

sudo pecl install imagick

 

Il faut l’activer dans le php.ini si pas déjà fait après l’install

 

voici le script pour imagemagick

/*****
créer un compteur vidéo en php et imagemagick
Jerome BAPTISTE 
2013
*/
<?php
$format = '00:%1$02d:%2$02d';
$fformat = '/tmp/ichrono_%1$02d_%2$02d.png';
$fontfile = '/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-B.ttf';
$duree = 10;
$nbimageps = 25;

for ($i=0;$i<=$duree;$i++) {
    for ($j=1;$j<=$nbimageps;$j++) {
    $filename = sprintf($fformat, $i, $j);
        try
        {
            /*** a new imagick object ***/
            $im = new Imagick();
            $draw = new ImagickDraw();
            /*appel de la fonte*/
            $draw->setFont($fontfile);
            /*taille du texte*/
            $draw->setFontSize( 80 );
            /*definition de la couleur du texte */
            $draw->setFillColor('yellow');
            /*creation du texte*/
            $chrono = sprintf($format, $i, $j);
            /*creation de l'image avec transparence*/
            $im->newImage( 1280, 720,'none' , "png" );
            /* ecriture du texte*/
            $im->annotateImage($draw, 890, 690, 0, $chrono);
            /*ecriture du fichier */
            $im->writeImage( $filename );
            echo 'Image Created'.$filename."/n";
        }
        catch(Exception $e)
        {
            echo $e->getMessage();
        }
    }
}
?>
 

N’oubliez pas de régler la durée et le nombre d’image par seconde.

finition avec kdenlive

Sous kdenlive rien de plus simple

1) Chronomètre image img 001prendre tous les fichiers et les mettre dans arboresence du projet

2)Chronomètre image img 002 toutes les sélectionner et modifier leur durée

3)Chronomètre image img 003 les sélectionners de la première à la dernière (cliquer sur la première, aller sur la dernière) les faire glisser sur la timeline

4) Chronomètre image img 004faire un rendu

   


Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :


Commentaires

  • Aucun commentaire trouvé

Poster un commentaire en tant qu'invité

0

Publicité - Ce contenu peut vous intéresser - Test