{"id":1024,"date":"2023-05-25T09:09:26","date_gmt":"2023-05-25T09:09:26","guid":{"rendered":"https:\/\/javierladino.com\/es\/?post_type=rara-portfolio&#038;p=1024"},"modified":"2026-05-23T13:20:25","modified_gmt":"2026-05-23T13:20:25","slug":"crea-una-huella-digital-cromatica-desde-flickr-usando-python","status":"publish","type":"rara-portfolio","link":"https:\/\/javierladino.com\/es\/portfolio\/crea-una-huella-digital-cromatica-desde-flickr-usando-python\/","title":{"rendered":"Crea una huella digital crom\u00e1tica desde Flickr usando Python"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u00bfTe encanta el arte y los colores? \u00bfQuieres explorar el mundo visual a trav\u00e9s de la programaci\u00f3n? En este proyecto, te mostrar\u00e9 c\u00f3mo crear la huella digital crom\u00e1tica de algunas ciudades de Francia utilizando Python y la API de Flickr. \u00a1Prep\u00e1rate para un viaje lleno de colores vibrantes y creatividad!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/nantesf-1024x1024.png\" alt=\"Nantes\" class=\"wp-image-1026\" srcset=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/nantesf-1024x1024.png 1024w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/nantesf-300x300.png 300w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/nantesf-150x150.png 150w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/nantesf-768x768.png 768w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/nantesf-60x60.png 60w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/nantesf-800x800.png 800w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/nantesf.png 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Introducci\u00f3n:<\/strong> En este tutorial, aprender\u00e1s c\u00f3mo utilizar Python para realizar una b\u00fasqueda en Flickr y crear una rueda de color utilizando las im\u00e1genes encontradas. La rueda de color mostrar\u00e1 una representaci\u00f3n visual de los colores promedio de las fotos relacionadas con la b\u00fasqueda en Flickr.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Requisitos previos:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Python 3 instalado en tu computadora.<\/li>\n\n\n\n<li>Las bibliotecas <code>requests<\/code> y <code>Pillow<\/code> (la implementaci\u00f3n de <code>PIL<\/code>) instaladas. Puedes instalarlas ejecutando <code>pip install requests pillow<\/code> en tu terminal.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 1: Obtener las claves de API de Flickr<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Para utilizar la API de Flickr, necesitaremos obtener las claves de API. Puedes obtenerlas registr\u00e1ndote como desarrollador en el sitio web de Flickr (<a href=\"https:\/\/www.flickr.com\/services\/api\/\">https:\/\/www.flickr.com\/services\/api\/<\/a>).<\/li>\n\n\n\n<li>Una vez que hayas obtenido las claves de API (API Key y API Secret), reemplaza <code>\"TU_API_KEY\"<\/code> y <code>\"TU_API_SECRET\"<\/code> en el c\u00f3digo Python con tus propias claves.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 2: Escribir el c\u00f3digo para buscar y descargar las fotos<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import requests\nfrom io import BytesIO\nfrom PIL import Image, ImageDraw\n\n# Llaves de API de Flickr\napi_key = \"TU_API_KEY\"\napi_secret = \"TU_API_SECRET\"\n\n# Realiza una b\u00fasqueda en Flickr\ndef buscar_fotos(busqueda):\n    url = \"https:\/\/api.flickr.com\/services\/rest\/\"\n    params = {\n        \"method\": \"flickr.photos.search\",\n        \"api_key\": api_key,\n        \"text\": busqueda,\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# Descarga una foto de Flickr\ndef descargar_foto(foto):\n    url = \"https:\/\/farm{farm}.staticflickr.com\/{server}\/{id}_{secret}.jpg\".format(**foto)\n    response = requests.get(url)\n    return Image.open(BytesIO(response.content))<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En el c\u00f3digo anterior, utilizamos las claves de API para realizar una b\u00fasqueda en Flickr y obtener los datos de las fotos relacionadas con la b\u00fasqueda. Luego, descargamos las fotos utilizando la URL proporcionada por Flickr y las convertimos en objetos de imagen utilizando <code>PIL<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"728\" src=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/afiche1-1024x728.png\" alt=\"\" class=\"wp-image-1025\" srcset=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/afiche1-1024x728.png 1024w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/afiche1-300x213.png 300w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/afiche1-768x546.png 768w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/afiche1-84x60.png 84w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/afiche1.png 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Paso 3: Crear la rueda de color<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Crea una rueda de color basada en las fotos descargadas\ndef crear_rueda_color(fotos):\n    size = (800, 800)\n    rueda = Image.new(\"RGB\", size)\n    draw = ImageDraw.Draw(rueda)\n\n    angulo = 0\n    angulo_incremento = 360 \/ len(fotos)\n\n    for foto in fotos:\n        imagen = descargar_foto(foto)\n        imagen = imagen.resize((100, 100))\n\n        imagen_promedio = imagen.resize((1, 1), Image.ANTIALIAS)\n        color_promedio = imagen_promedio.getpixel((0, 0))\n        \n        draw.pieslice(&#91;(0, 0), size], angulo, angulo + angulo_incremento, fill=color_promedio)\n        angulo += angulo_incremento\n\n    rueda.show()\n\n# Realiza una b\u00fasqueda en Flickr y crea la rueda de color\nbusqueda = input(\"Ingresa el t\u00e9rmino de b\u00fasqueda en Flickr: \")\nfotos = buscar_fotos(busqueda)\ncrear_rueda_color(fotos)\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/toulousef-1024x1024.png\" alt=\"Toulouse\" class=\"wp-image-1027\" srcset=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/toulousef-1024x1024.png 1024w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/toulousef-300x300.png 300w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/toulousef-150x150.png 150w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/toulousef-768x768.png 768w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/toulousef-60x60.png 60w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/toulousef-800x800.png 800w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/toulousef.png 1080w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Este c\u00f3digo realiza una b\u00fasqueda en Flickr basada en un t\u00e9rmino ingresado por el usuario, descarga las primeras 100 fotos relacionadas y crea una rueda de color utilizando los colores promedio de cada foto. Puedes modificar la cantidad de fotograf\u00edas <strong>(\u00abper_page\u00bb)<\/strong> pero ten en cuenta que la API de Flickr tiene un l\u00edmite de solicitudes. La rueda de color resultante se muestra en una ventana emergente.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"728\" src=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/bog_amaz-1024x728.png\" alt=\"FingerPrint Bogot\u00e1 - Amazonas\" class=\"wp-image-1028\" srcset=\"https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/bog_amaz-1024x728.png 1024w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/bog_amaz-300x213.png 300w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/bog_amaz-768x546.png 768w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/bog_amaz-84x60.png 84w, https:\/\/javierladino.com\/es\/wp-content\/uploads\/2023\/05\/bog_amaz.png 1440w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">No podr\u00eda faltar una visualizaci\u00f3n de Bogot\u00e1 y el Amazonas en Colombia. Podemos ver el contraste y la dominancia de colores que registra el ladrillo y el cemento de la capital contra los tonos verdes naturales del amazonas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El procesamiento de im\u00e1genes y la segmentaci\u00f3n de colores por pixel ser\u00e1 objeto de otros ejercicios en los que estoy trabajando. Y no puedo terminar la publicaci\u00f3n sin agradecer al profesor <a href=\"https:\/\/www.instagram.com\/nestor2509\/\" target=\"_blank\" rel=\"noreferrer noopener\">N\u00e9stor Pe\u00f1a<\/a> qui\u00e9n me influencia constantemente con su trabajo y me aproxim\u00f3 al mundo del DataViz.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes encontrar el c\u00f3digo completo en un Jupyter Notebook en GitHub:<br><a href=\"https:\/\/github.com\/javiladino\/flicker_fingerprint\">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","protected":false},"excerpt":{"rendered":"<p>\u00bfTe encanta el arte y los colores? \u00bfQuieres explorar el mundo visual a trav\u00e9s de la programaci\u00f3n? En este proyecto, te mostrar\u00e9 c\u00f3mo crear la huella digital crom\u00e1tica de algunas ciudades de Francia utilizando Python y la API de Flickr. \u00a1Prep\u00e1rate para un viaje lleno de colores vibrantes y creatividad! Introducci\u00f3n: En este tutorial, aprender\u00e1s &hellip; <\/p>\n","protected":false},"author":1,"featured_media":1025,"comment_status":"open","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0},"rara_portfolio_categories":[27],"class_list":["post-1024","rara-portfolio","type-rara-portfolio","status-publish","has-post-thumbnail","hentry","rara_portfolio_categories-dataviz"],"_links":{"self":[{"href":"https:\/\/javierladino.com\/es\/wp-json\/wp\/v2\/rara-portfolio\/1024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/javierladino.com\/es\/wp-json\/wp\/v2\/rara-portfolio"}],"about":[{"href":"https:\/\/javierladino.com\/es\/wp-json\/wp\/v2\/types\/rara-portfolio"}],"author":[{"embeddable":true,"href":"https:\/\/javierladino.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/javierladino.com\/es\/wp-json\/wp\/v2\/comments?post=1024"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/javierladino.com\/es\/wp-json\/wp\/v2\/media\/1025"}],"wp:attachment":[{"href":"https:\/\/javierladino.com\/es\/wp-json\/wp\/v2\/media?parent=1024"}],"wp:term":[{"taxonomy":"rara_portfolio_categories","embeddable":true,"href":"https:\/\/javierladino.com\/es\/wp-json\/wp\/v2\/rara_portfolio_categories?post=1024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}