{"id":194,"date":"2014-05-08T18:22:48","date_gmt":"2014-05-08T18:22:48","guid":{"rendered":"http:\/\/ifdesignelseart.com\/?p=194"},"modified":"2017-03-14T18:54:15","modified_gmt":"2017-03-14T18:54:15","slug":"creer-une-animation-gif-avec-la-librairie-gifanimation","status":"publish","type":"post","link":"https:\/\/ifdesignelseart.com\/?p=194","title":{"rendered":"Cr\u00e9er une animation GIF avec la librairie \u00ab\u00a0gifAnimation\u00a0\u00bb"},"content":{"rendered":"<p>La librairie gifAnimation permet d&rsquo;exporter un fichier au format GIF anim\u00e9 directement depuis Processing. Elle n&rsquo;a malheureusement pas encore \u00e9t\u00e9 port\u00e9e sous Processing 3 et ne fonctionne donc qu&rsquo;avec les versions pr\u00e9c\u00e9dentes.<\/p>\n<p>La premi\u00e8re \u00e9tape est de t\u00e9l\u00e9charger la librairie <em>gifAnimation<\/em>.<br \/>\nDepuis la version 2 de Processing, cette op\u00e9ration peut se r\u00e9aliser de mani\u00e8re assez automatique, depuis le menu \u00ab\u00a0Sketch\u00a0\u00bb.<br \/>\nOn commence par aller dans \u00ab\u00a0Import Library&#8230;\u00a0\u00bb puis \u00ab\u00a0Add Library&#8230;\u00a0\u00bb.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/ifdesignelseart.com\/wp-content\/uploads\/2014\/05\/import_librairie.png\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/ifdesignelseart.com\/wp-content\/uploads\/2014\/05\/import_librairie.png\" alt=\"import_librairie\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&#8230;ce qui fait appara\u00eetre la fen\u00eatre du gestionnaire des librairies, le \u00ab\u00a0Library manager\u00a0\u00bb, o\u00f9 figurent\u00a0les nom des librairies install\u00e9es et de celles qui sont disponibles.<br \/>\nPour t\u00e9l\u00e9charger une librairie, on clique simplement sur le bouton \u00ab\u00a0Install\u00a0\u00bb. La suite se d\u00e9roule automatiquement.<br \/>\nBien \u00e9videmment, votre ordinateur doit \u00eatre connect\u00e9 \u00e0 Internet pour que ce t\u00e9l\u00e9chargement fonctionne.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/ifdesignelseart.com\/wp-content\/uploads\/2014\/05\/import_librairie2.png\"><img decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/ifdesignelseart.com\/wp-content\/uploads\/2014\/05\/import_librairie2.png\" alt=\"import_librairie2\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Une fois install\u00e9e, la librairie est imm\u00e9diatement disponible.<br \/>\nL&rsquo;\u00e9tape suivante, dans notre programme, sera de d\u00e9clarer la librairie, et de d\u00e9clarer\u00a0un objet GifMaker, que nous choisirons de nommer gifExport :<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush:java\">import gifAnimation.*;\r\nGifMaker gifExport ;<\/pre>\n<p>&nbsp;<\/p>\n<p>Cet objet sera plus tard instanci\u00e9 dans la section setup :<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush:java\">gifExport = new GifMaker(this, \"monjoligifanime.gif\"); \/\/ on instancie l'objet et on indique le nom qu'aura le fichier\r\ngifExport.setRepeat(0); \/\/ on d\u00e9clare le nombre de r\u00e9p\u00e9titions de la boucle (0 : infini)        \r\ngifExport.setTransparent(255,255,255); \/\/ on d\u00e9clare la couleur de transparence (ici, du blanc)<\/pre>\n<p>&nbsp;<\/p>\n<p>Au cours de l&rsquo;animation, chaque fois que nous d\u00e9sirerons enregistrer le contenu de notre fen\u00eatre en tant que \u00ab\u00a0frame\u00a0\u00bb (photogramme) de notre animation, nous utiliserons les commandes setDelay() (pour d\u00e9finir la dur\u00e9e de l&rsquo;image, en millisecondes), et addFrame(), pour enregistrer :<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush:java\">gifExport.setDelay(20);\r\ngifExport.addFrame();<\/pre>\n<p>&nbsp;<\/p>\n<p>Enfin, lorsque toutes les images que nous souhaitons enregistrer l&rsquo;auront \u00e9t\u00e9, nous pourrons arr\u00eater l&rsquo;animation et proc\u00e9der \u00e0 l&rsquo;enregistrement :<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush:java\">gifExport.finish();  \r\nnoLoop();<\/pre>\n<p>&nbsp;<\/p>\n<p>Voici le programme complet, qui dessine un rectangle en train de grandir. Chaque \u00e9tape est enregistr\u00e9e, et lorsque le rectangle d\u00e9passe le format de notre fen\u00eatre, l&rsquo;animation s&rsquo;interrompt et le gif anim\u00e9 est enregistr\u00e9.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"brush:java\">import gifAnimation.*;\r\nGifMaker gifExport ;\r\nfloat taille=0;\r\n\r\nvoid setup() {\r\nsize(200,200); \r\n    gifExport = new GifMaker(this, \"monjoligifanime.gif\");\r\n    gifExport.setRepeat(0);             \r\n   gifExport.setTransparent(255,255,255);  \r\n    noFill();\r\n    strokeWeight(10);\r\n    rectMode(CENTER);\r\n}\r\n\r\nvoid draw() {\r\n    background(255);\r\n    rect(width\/2, height\/2, taille, taille);\r\n    taille+=2;\r\n    taille*=1.2;\r\n    \r\n    gifExport.setDelay(20);\r\n    gifExport.addFrame();\r\n    if(taille&gt;width){ \r\n    gifExport.finish();  \r\n      noLoop();\r\n    }\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>Une fois le Gif fabriqu\u00e9, vous n&rsquo;aurez plus qu&rsquo;\u00e0 aller le r\u00e9cup\u00e9rer \u00e0 l&rsquo;int\u00e9rieur de votre \u00ab\u00a0Sketch folder\u00a0\u00bb, avec la commande \u00ab\u00a0Sketch -&gt; show sketch folder\u00a0\u00bb.<br \/>\nAttention les yeux, voici le r\u00e9sultat :<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"http:\/\/ifdesignelseart.com\/wp-content\/uploads\/2014\/05\/monjoligifanime.gif\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"http:\/\/ifdesignelseart.com\/wp-content\/uploads\/2014\/05\/monjoligifanime.gif\" alt=\"monjoligifanime\" width=\"200\" height=\"200\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La librairie gifAnimation permet d&rsquo;exporter un fichier au format GIF anim\u00e9 directement depuis Processing. Elle n&rsquo;a malheureusement pas encore \u00e9t\u00e9 port\u00e9e sous Processing 3 et ne fonctionne donc qu&rsquo;avec les versions pr\u00e9c\u00e9dentes. La premi\u00e8re \u00e9tape est de t\u00e9l\u00e9charger la librairie gifAnimation. Depuis la version 2 de Processing, cette op\u00e9ration peut se r\u00e9aliser de mani\u00e8re assez [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-194","post","type-post","status-publish","format-standard","hentry","category-tips"],"_links":{"self":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts\/194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=194"}],"version-history":[{"count":1,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts\/194\/revisions"}],"predecessor-version":[{"id":282,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=\/wp\/v2\/posts\/194\/revisions\/282"}],"wp:attachment":[{"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ifdesignelseart.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}