{"id":76136,"date":"2022-07-08T11:43:34","date_gmt":"2022-07-08T09:43:34","guid":{"rendered":"https:\/\/keepcoding.io\/?p=76136"},"modified":"2024-06-27T19:13:18","modified_gmt":"2024-06-27T17:13:18","slug":"pygameimageload-en-python","status":"publish","type":"post","link":"https:\/\/keepcoding.io\/blog\/pygameimageload-en-python\/","title":{"rendered":"\u00bfC\u00f3mo usar la funci\u00f3n pygame.image.load en Python?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Todos los m\u00f3dulos de la <a href=\"https:\/\/www.pygame.org\/docs\/ref\/image.html\" target=\"_blank\" rel=\"noreferrer noopener\">librer\u00eda Pygame<\/a> del lenguaje de <a href=\"https:\/\/keepcoding.io\/blog\/que-es-la-programacion-y-para-que-sirve\/\">programaci\u00f3n<\/a> de <a href=\"https:\/\/keepcoding.io\/blog\/que-es-input-en-python-y-como-usarlo\/\">Python<\/a> pueden componer un programa para enriquecer las caracter\u00edsticas fundamentales, est\u00e9ticas y funcionales de un videojuego. Una de estas caracter\u00edsticas es el uso de im\u00e1genes en tus programas, por lo tanto, en este art\u00edculo, te contaremos c\u00f3mo usar la funci\u00f3n <code>pygame.image.load<\/code> en Python.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/keepcoding.io\/wp-content\/smush-webp\/2024\/06\/pygame.image_.load-en-Python-1024x585.jpg.webp\" alt=\"pygame.image.load en Python\" class=\"wp-image-195048\" title=\"\" srcset=\"https:\/\/keepcoding.io\/wp-content\/smush-webp\/2024\/06\/pygame.image_.load-en-Python-1024x585.jpg.webp 1024w, https:\/\/keepcoding.io\/wp-content\/smush-webp\/2024\/06\/pygame.image_.load-en-Python-300x171.jpg.webp 300w, https:\/\/keepcoding.io\/wp-content\/smush-webp\/2024\/06\/pygame.image_.load-en-Python-768x439.jpg.webp 768w, https:\/\/keepcoding.io\/wp-content\/smush-webp\/2024\/06\/pygame.image_.load-en-Python-1536x878.jpg.webp 1536w, https:\/\/keepcoding.io\/wp-content\/uploads\/2024\/06\/pygame.image_.load-en-Python.jpg 1792w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_74 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u00bfQu\u00e9 encontrar\u00e1s en este post?<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Alternar tabla de contenidos\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/keepcoding.io\/blog\/pygameimageload-en-python\/#%C2%BFQue_es_Pygame\" >\u00bfQu\u00e9 es Pygame?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/keepcoding.io\/blog\/pygameimageload-en-python\/#Instalacion_de_Pygame\" >Instalaci\u00f3n de Pygame<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/keepcoding.io\/blog\/pygameimageload-en-python\/#Modulo_pygameImage_de_Pygame\" >M\u00f3dulo pygame.Image de Pygame<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/keepcoding.io\/blog\/pygameimageload-en-python\/#Como_usar_la_funcion_pygameimageload_en_Python\" >C\u00f3mo usar la funci\u00f3n pygame.image.load en Python<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/keepcoding.io\/blog\/pygameimageload-en-python\/#Anadir_imagenes_a_tu_programa_para_videojuegos\" >A\u00f1adir im\u00e1genes a tu programa para videojuegos<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/keepcoding.io\/blog\/pygameimageload-en-python\/#Ejemplo_practico\" >Ejemplo pr\u00e1ctico<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/keepcoding.io\/blog\/pygameimageload-en-python\/#Gestion_de_errores_y_solucion_de_problemas\" >Gesti\u00f3n de errores y soluci\u00f3n de problemas<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/keepcoding.io\/blog\/pygameimageload-en-python\/#Optimizacion_y_buenas_practicas\" >Optimizaci\u00f3n y buenas pr\u00e1cticas<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%C2%BFQue_es_Pygame\"><\/span>\u00bfQu\u00e9 es Pygame?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/keepcoding.io\/blog\/que-es-pygame\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pygame<\/a> es una biblioteca de Python que permite desarrollar videojuegos de manera sencilla y eficiente.<\/strong> Lanzada en el a\u00f1o 2000, Pygame se ha convertido en una <a href=\"https:\/\/keepcoding.io\/blog\/herramientas-clave-para-desarrolladores\/\">herramienta<\/a> fundamental para desarrolladores de juegos de todos los niveles, desde principiantes hasta profesionales. <strong>Esta biblioteca es una capa de abstracci\u00f3n sobre la <a href=\"https:\/\/www.libsdl.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">biblioteca SDL<\/a> (Simple DirectMedia Layer)<\/strong>, proporcionando interfaces f\u00e1ciles de usar para la creaci\u00f3n de gr\u00e1ficos 2D, la reproducci\u00f3n de sonido, y el manejo de eventos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Instalacion_de_Pygame\"><\/span>Instalaci\u00f3n de Pygame<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para instalar Pygame, ejecuta el siguiente comando en tu terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">\/\/pygame.image.load en Python\npip install pygame<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aseg\u00farate de tener Python y pip instalados en tu sistema. Puedes verificarlo ejecutando <code>python --version<\/code> y <code>pip --version<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Modulo_pygameImage_de_Pygame\"><\/span>M\u00f3dulo pygame.Image de Pygame<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>El m\u00f3dulo <code>pygame.image<\/code> se utiliza para controlar la transferencia de im\u00e1genes en un programa<\/strong>. Este <a href=\"https:\/\/keepcoding.io\/blog\/modulos-y-metodos-de-pygame\/\" target=\"_blank\" rel=\"noreferrer noopener\">m\u00f3dulo posee varios m\u00e9todos<\/a> que controlan y configuran las im\u00e1genes que luego podr\u00e1s a\u00f1adir a tus juegos. A continuaci\u00f3n, te expondremos algunos m\u00e9todos, entre ellos la <strong>funci\u00f3n <code>pygame.image.load<\/code> de la librer\u00eda <code>pygame.image<\/code>.<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>M\u00e9todo pygame.image.load en Python<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">El m\u00e9todo <code>pygame.image.load<\/code> en Python del m\u00f3dulo <code>pygame.image<\/code> se encarga de subir y cargar im\u00e1genes de un archivo o de un documento parecido a un archivo. Seg\u00fan la <a href=\"https:\/\/www.pygame.org\/docs\/\" target=\"_blank\" rel=\"noopener\">documentaci\u00f3n oficial de Pygame<\/a>, la funci\u00f3n est\u00e1 representada de la siguiente manera:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">\/\/pygame.image.load en Python\npygame.image.load(filename)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto resultar\u00e1 en una superficie donde se le ingresan argumentos, como el nombre del documento o <code><strong>filename<\/strong><\/code>, un objeto como el de Python o, por el contrario, un <code><strong><a href=\"https:\/\/docs.python.org\/3\/library\/pathlib.html\" target=\"_blank\" rel=\"noreferrer noopener\">pathlib.Path<\/a><\/strong><\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>M\u00e9todo pygame.image.save<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">El m\u00e9todo <code>pygame.image.save<\/code> del m\u00f3dulo <code>pygame.image<\/code> <strong>se encarga de guardar una imagen en un archivo del programa en Python.<\/strong> La funci\u00f3n que se utiliza para cumplir con este m\u00e9todo es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">pygame.image.save(Surface, filename)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lo que resultar\u00e1 de esta acci\u00f3n es el almacenamiento de la imagen en formato jpeg, png, tga o bmp.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>M\u00e9todo pygame.image.load_extended<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">El m\u00e9todo <code>pygame.image.load_extended<\/code> del m\u00f3dulo <code>pygame.image<\/code> tambi\u00e9n <strong>se utiliza para subir y cargar una imagen de un archivo<\/strong> con la funci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">pygame.image.load_extended(filename)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">donde pasar\u00e1s como argumento el nombre de la imagen.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>M\u00e9todo pygame.image.save_extended<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">El m\u00e9todo <code>pygame.image.save_extended<\/code> del m\u00f3dulo <code>pygame.image<\/code> tambi\u00e9n se utiliza para <strong>almacenar las im\u00e1genes en formato png o jpg en un archivo<\/strong> con la funci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">pygame.image.save_extended(Surface, filename)<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Como_usar_la_funcion_pygameimageload_en_Python\"><\/span>C\u00f3mo usar la funci\u00f3n pygame.image.load en Python<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de empezar a usar la funci\u00f3n <code>pygame.image.load<\/code> en Python, <strong>deber\u00e1s a\u00f1adir los archivos o im\u00e1genes a la realizaci\u00f3n del programa<\/strong>. Para ello, primero deber\u00e1s crear una carpeta de recursos, donde subir\u00e1s la imagen o im\u00e1genes que utilizar\u00e1s a lo largo del desarrollo del juego.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Anadir_imagenes_a_tu_programa_para_videojuegos\"><\/span>A\u00f1adir im\u00e1genes a tu programa para videojuegos<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para a\u00f1adir im\u00e1genes a tu programa de videojuegos con Pygame, sigue estos pasos:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Subir im\u00e1genes como assets<\/strong>: Aseg\u00farate de haber subido las im\u00e1genes a tu programa en la carpeta correcta de tu proyecto.<\/li>\n\n\n\n<li><strong>Instanciar la clase del juego<\/strong>: Crea una clase para tu juego donde instanciar\u00e1s y dibujar\u00e1s la pantalla.<\/li>\n\n\n\n<li><strong>Importar la librer\u00eda os<\/strong>: Esta librer\u00eda te ayudar\u00e1 a enlazar el programa con la ruta de los recursos de la imagen.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ejemplo_practico\"><\/span>Ejemplo pr\u00e1ctico<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El siguiente c\u00f3digo muestra c\u00f3mo utilizar <code>pygame.image.load<\/code> para cargar una imagen y dibujarla en la pantalla:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">import os\nimport pygame\n\nclass MiJuego:\n    def __init__(self, pantalla):\n        self.pantalla = pantalla\n        self.imagen = pygame.image.load(os.path.join('recursos', 'images', 'mi_imagen.png'))\n\n    def bucle_principal(self):\n        self.pantalla.blit(self.imagen, (100, 100))\n\n# Inicializaci\u00f3n de Pygame\npygame.init()\npantalla = pygame.display.set_mode((800, 600))\njuego = MiJuego(pantalla)\n\n# Bucle principal del juego\ncorriendo = True\nwhile corriendo:\n    for evento in pygame.event.get():\n        if evento.type == pygame.QUIT:\n            corriendo = False\n    juego.bucle_principal()\n    pygame.display.flip()\n\npygame.quit()<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Gestion_de_errores_y_solucion_de_problemas\"><\/span>Gesti\u00f3n de errores y soluci\u00f3n de problemas<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Al trabajar con <code>pygame.image.load<\/code>, puedes encontrar algunos errores comunes, como la falta del archivo de imagen o problemas de ruta. Para manejar estos errores, puedes usar try-except:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">\/\/pygame.image.load en python\ntry:\n    self.imagen = pygame.image.load(os.path.join('recursos', 'images', 'mi_imagen.png'))\nexcept pygame.error as e:\n    print(f\"No se pudo cargar la imagen: {e}\")<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Optimizacion_y_buenas_practicas\"><\/span>Optimizaci\u00f3n y buenas pr\u00e1cticas<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Reducir el tama\u00f1o de las im\u00e1genes<\/strong>: Utiliza im\u00e1genes de tama\u00f1o adecuado para mejorar el rendimiento.<\/li>\n\n\n\n<li><strong>Cargar im\u00e1genes antes del bucle principal<\/strong>: Evita cargar im\u00e1genes repetidamente dentro del bucle principal del juego.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Si te queda alguna duda sobre esta funci\u00f3n y sobre la librer\u00eda Pygame, te invitamos a ver el Webinar de David Arias en donde explica \u00a1c\u00f3mo crear un videojuego con Pygame!<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"\ud83d\udd79Aprende a programar videojuegos con PYGAME\" width=\"1200\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/e9-Va12JBuw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><figcaption class=\"wp-element-caption\">\u00bfC\u00f3mo crear un videojuego con Pygame?<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora que ya conoces un m\u00f3dulo m\u00e1s de Pygame, los 4 m\u00e9todos que lo constituyen y c\u00f3mo usar la funci\u00f3n pygame.image.load en Python,<strong> est\u00e1s listo para seguir interactuando con las im\u00e1genes en tus programas de c\u00f3digo.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si tu sue\u00f1o es convertirte en un <a href=\"https:\/\/keepcoding.io\/blog\/que-es-un-programador-informatico\/\">programador<\/a> profesional, pero necesitas la colaboraci\u00f3n de profesores expertos en Python y otras formas de escribir c\u00f3digo para productos funcionales o proyectos de videojuego, te recomendamos inscribirte en nuestro <a href=\"https:\/\/keepcoding.io\/nuestros-bootcamps\/bootcamp-aprende-a-programar\/\">Aprende a Programar desde Cero Full Stack Jr. Bootcamp<\/a>.<strong> \u00a1An\u00edmate a seguir programando y convi\u00e9rtete en un profesional del c\u00f3digo!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Todos los m\u00f3dulos de la librer\u00eda Pygame del lenguaje de programaci\u00f3n de Python pueden componer un programa para enriquecer las caracter\u00edsticas fundamentales, est\u00e9ticas y funcionales de un videojuego. Una de estas caracter\u00edsticas es el uso de im\u00e1genes en tus programas, por lo tanto, en este art\u00edculo, te contaremos c\u00f3mo usar la funci\u00f3n pygame.image.load en Python. &#8230; <a title=\"\u00bfC\u00f3mo usar la funci\u00f3n pygame.image.load en Python?\" class=\"read-more\" href=\"https:\/\/keepcoding.io\/blog\/pygameimageload-en-python\/\" aria-label=\"Leer m\u00e1s sobre \u00bfC\u00f3mo usar la funci\u00f3n pygame.image.load en Python?\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":4,"featured_media":195031,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,392],"tags":[506,404,405],"class_list":["post-76136","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-desarrollo-apps-moviles","tag-conceptos-desarrollo-de-apps-moviles","tag-pygame","tag-python"],"_links":{"self":[{"href":"https:\/\/keepcoding.io\/wp-json\/wp\/v2\/posts\/76136","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/keepcoding.io\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/keepcoding.io\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/keepcoding.io\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/keepcoding.io\/wp-json\/wp\/v2\/comments?post=76136"}],"version-history":[{"count":0,"href":"https:\/\/keepcoding.io\/wp-json\/wp\/v2\/posts\/76136\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/keepcoding.io\/wp-json\/wp\/v2\/media\/195031"}],"wp:attachment":[{"href":"https:\/\/keepcoding.io\/wp-json\/wp\/v2\/media?parent=76136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/keepcoding.io\/wp-json\/wp\/v2\/categories?post=76136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/keepcoding.io\/wp-json\/wp\/v2\/tags?post=76136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}