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

   

Comments powered by CComment

We use cookies

Nous utilisons des cookies sur notre site web. Certains d’entre eux sont essentiels au fonctionnement du site et d’autres nous aident à améliorer ce site et l’expérience utilisateur (cookies traceurs). Vous pouvez décider vous-même si vous autorisez ou non ces cookies. Merci de noter que, si vous les rejetez, vous risquez de ne pas pouvoir utiliser l’ensemble des fonctionnalités du site.