{"id":981,"date":"2023-05-25T09:34:32","date_gmt":"2023-05-25T09:34:32","guid":{"rendered":"https:\/\/javierladino.com\/fr\/?post_type=rara-portfolio&#038;p=981"},"modified":"2023-05-25T10:05:28","modified_gmt":"2023-05-25T10:05:28","slug":"creer-une-empreinte-chromatique-a-partir-de-flickr-en-utilisant-python","status":"publish","type":"rara-portfolio","link":"https:\/\/javierladino.com\/fr\/portfolio\/creer-une-empreinte-chromatique-a-partir-de-flickr-en-utilisant-python\/","title":{"rendered":"Cr\u00e9er une empreinte chromatique \u00e0 partir de Flickr en utilisant Python"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Vous aimez l&rsquo;art et les couleurs et vous souhaitez explorer le monde visuel par le biais de la programmation ? Dans ce projet, je vous montrerai comment cr\u00e9er l&#8217;empreinte chromatique de certaines villes de France \u00e0 l&rsquo;aide de Python et de l&rsquo;API Flickr. Pr\u00e9parez-vous \u00e0 un voyage plein de couleurs vibrantes et de cr\u00e9ativit\u00e9 !<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/nantesf-1024x1024.png\" alt=\"Nantes\" class=\"wp-image-1026\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Introduction:<\/strong> Dans ce tutoriel, vous apprendrez \u00e0 utiliser Python pour effectuer une recherche sur Flickr et cr\u00e9er une roue des couleurs \u00e0 partir des images trouv\u00e9es. La roue des couleurs sera une repr\u00e9sentation visuelle des couleurs moyennes des photos li\u00e9es \u00e0 la recherche Flickr.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Conditions pr\u00e9alables :<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Python 3 install\u00e9 sur votre ordinateur.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Les biblioth\u00e8ques Requests et Pillow (l&rsquo;impl\u00e9mentation de PIL) sont install\u00e9es. Vous pouvez les installer en lan\u00e7ant pip install requests pillow dans votre terminal.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00c9tape 1 : Obtenir les cl\u00e9s de l&rsquo;API Flickr<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pour utiliser l&rsquo;API Flickr, nous devons obtenir les cl\u00e9s de l&rsquo;API. Vous pouvez les obtenir en vous enregistrant en tant que d\u00e9veloppeur sur le site web de Flickr (https:\/\/www.flickr.com\/services\/api\/).<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Une fois que vous avez obtenu les cl\u00e9s API (API Key et API Secret), remplacez \u00ab\u00a0TU_API_KEY\u00a0\u00bb et \u00ab\u00a0TU_API_SECRET\u00a0\u00bb dans le code Python par vos propres cl\u00e9s.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00c9tape 2 : \u00c9crire le code pour rechercher et t\u00e9l\u00e9charger les photos<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import requests\nfrom io import BytesIO\nfrom PIL import Image, ImageDraw\nimport webbrowser\n\n# Flickr API Keys\napi_key = \"YOUR_API_KEY\"\napi_secret = \"YOUR_API_SECRET\"\n\n# Perform a search on Flickr\ndef search_photos(query):\n    url = \"https:\/\/api.flickr.com\/services\/rest\/\"\n    params = {\n        \"method\": \"flickr.photos.search\",\n        \"api_key\": api_key,\n        \"text\": query,\n        \"sort\": \"relevance\",\n        \"per_page\": 24,\n        \"format\": \"json\",\n        \"nojsoncallback\": 1\n    }\n    response = requests.get(url, params=params)\n    data = response.json()\n    return data&#91;\"photos\"]&#91;\"photo\"]\n\n# Download a photo from Flickr\ndef download_photo(photo):\n    url = \"https:\/\/farm{farm}.staticflickr.com\/{server}\/{id}_{secret}.jpg\".format(**photo)\n    response = requests.get(url)\n    return Image.open(BytesIO(response.content))<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dans le code ci-dessus, nous utilisons les cl\u00e9s API pour effectuer une recherche sur Flickr et obtenir les donn\u00e9es des photos li\u00e9es \u00e0 la recherche. Ensuite, nous t\u00e9l\u00e9chargeons les photos \u00e0 l&rsquo;aide de l&rsquo;URL fournie par Flickr et les convertissons en objets images \u00e0 l&rsquo;aide de <strong>PIL<\/strong>.<\/p>\n\n\n<figure class=\"wp-block-post-featured-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1440\" height=\"1024\" src=\"https:\/\/javierladino.com\/fr\/wp-content\/uploads\/2023\/05\/afiche1.png\" class=\"attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" style=\"object-fit:cover;\" srcset=\"https:\/\/javierladino.com\/fr\/wp-content\/uploads\/2023\/05\/afiche1.png 1440w, https:\/\/javierladino.com\/fr\/wp-content\/uploads\/2023\/05\/afiche1-300x213.png 300w, https:\/\/javierladino.com\/fr\/wp-content\/uploads\/2023\/05\/afiche1-1024x728.png 1024w, https:\/\/javierladino.com\/fr\/wp-content\/uploads\/2023\/05\/afiche1-768x546.png 768w, https:\/\/javierladino.com\/fr\/wp-content\/uploads\/2023\/05\/afiche1-84x60.png 84w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/figure>\n\n\n<p class=\"wp-block-paragraph\"><strong><strong>\u00c9tape 3 : Cr\u00e9ation de la roue des couleurs<\/strong><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Create a color wheel based on the downloaded photos\ndef create_color_wheel(photos):\n    size = (800, 800)\n    wheel = Image.new(\"RGB\", size)\n    draw = ImageDraw.Draw(wheel)\n\n    angle = 0\n    angle_increment = 360 \/ len(photos)\n\n    for photo in photos:\n        image = download_photo(photo)\n        image = image.resize((100, 100))\n\n        averaged_image = image.resize((1, 1), Image.ANTIALIAS)\n        average_color = averaged_image.getpixel((0, 0))\n        \n        draw.pieslice(&#91;(0, 0), size], angle, angle + angle_increment, fill=average_color)\n        angle += angle_increment\n\n    wheel.show()\n\n# Perform a search on Flickr and create the color wheel\nsearch_term = input(\"Enter your search term on Flickr: \")\nphotos = search_photos(search_term)\ncreate_color_wheel(photos)\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/toulousef-1024x1024.png\" alt=\"Toulouse\" class=\"wp-image-1027\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ce code effectue une recherche sur Flickr sur la base d&rsquo;un terme saisi par l&rsquo;utilisateur, t\u00e9l\u00e9charge les 100 premi\u00e8res photos associ\u00e9es et cr\u00e9e une roue de couleurs en utilisant les couleurs moyennes de chaque photo. Vous pouvez modifier le nombre de photos (\u00ab\u00a0<strong>per_page<\/strong>\u00ab\u00a0), mais notez que l&rsquo;API de Flickr a une limite de requ\u00eate. Le cercle chromatique obtenu est affich\u00e9 dans une fen\u00eatre contextuelle.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/bog_amaz-1024x728.png\" alt=\"FingerPrint Bogot\u00e1 - Amazonas\" class=\"wp-image-1028\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Une visualisation de Bogota et de l&rsquo;Amazonie en Colombie ne pouvait manquer. On peut voir le contraste et la dominance des couleurs de la brique et du b\u00e9ton de la capitale par rapport aux tons verts naturels de l&rsquo;Amazonie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le traitement des images et la segmentation des couleurs pixel par pixel feront l&rsquo;objet d&rsquo;autres exercices sur lesquels je travaille. Je ne saurais terminer cette publication sans remercier le professeur <a href=\"https:\/\/www.instagram.com\/nestor2509\/\" target=\"_blank\" rel=\"noreferrer noopener\">N\u00e9stor Pe\u00f1a<\/a> qui m&rsquo;a constamment influenc\u00e9 par son travail et m&rsquo;a rapproch\u00e9 du monde de la DataViz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous pouvez trouver le code complet dans un Jupyter Notebook sur GitHub :<br><a href=\"https:\/\/github.com\/javiladino\/flicker_fingerprint\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/javiladino\/flicker_fingerprint<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vous aimez l&rsquo;art et les couleurs et vous souhaitez explorer le monde visuel par le biais de la programmation ? Dans ce projet, je vous montrerai comment cr\u00e9er l&#8217;empreinte chromatique de certaines villes de France \u00e0 l&rsquo;aide de Python et de l&rsquo;API Flickr. Pr\u00e9parez-vous \u00e0 un voyage plein de couleurs vibrantes et de cr\u00e9ativit\u00e9 ! &hellip; <\/p>\n","protected":false},"author":1,"featured_media":982,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0},"rara_portfolio_categories":[27],"class_list":["post-981","rara-portfolio","type-rara-portfolio","status-publish","has-post-thumbnail","hentry","rara_portfolio_categories-dataviz"],"_links":{"self":[{"href":"https:\/\/javierladino.com\/fr\/wp-json\/wp\/v2\/rara-portfolio\/981","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/javierladino.com\/fr\/wp-json\/wp\/v2\/rara-portfolio"}],"about":[{"href":"https:\/\/javierladino.com\/fr\/wp-json\/wp\/v2\/types\/rara-portfolio"}],"author":[{"embeddable":true,"href":"https:\/\/javierladino.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/javierladino.com\/fr\/wp-json\/wp\/v2\/comments?post=981"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/javierladino.com\/fr\/wp-json\/wp\/v2\/media\/982"}],"wp:attachment":[{"href":"https:\/\/javierladino.com\/fr\/wp-json\/wp\/v2\/media?parent=981"}],"wp:term":[{"taxonomy":"rara_portfolio_categories","embeddable":true,"href":"https:\/\/javierladino.com\/fr\/wp-json\/wp\/v2\/rara_portfolio_categories?post=981"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}