{"id":16184,"date":"2024-03-15T12:29:06","date_gmt":"2024-03-15T12:29:06","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/"},"modified":"2025-08-07T00:53:47","modified_gmt":"2025-08-07T00:53:47","slug":"how-to-batch-concatenate-images-in-python","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/","title":{"rendered":"How to batch concatenate images in Python?"},"content":{"rendered":"<p>In Python, you can use the Python Imaging Library (PIL) library for image processing and stitching. Here is a method for batch stitching images.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">from<\/span> PIL <span class=\"hljs-keyword\">import<\/span> Image\r\n<span class=\"hljs-keyword\">import<\/span> os\r\n\r\n<span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">join_images<\/span>(<span class=\"hljs-params\">input_folder, output_file<\/span>):\r\n    images = []\r\n    <span class=\"hljs-keyword\">for<\/span> filename <span class=\"hljs-keyword\">in<\/span> os.listdir(input_folder):\r\n        <span class=\"hljs-keyword\">if<\/span> filename.endswith(<span class=\"hljs-string\">\".jpg\"<\/span>) <span class=\"hljs-keyword\">or<\/span> filename.endswith(<span class=\"hljs-string\">\".png\"<\/span>):\r\n            images.append(Image.<span class=\"hljs-built_in\">open<\/span>(os.path.join(input_folder, filename)))\r\n\r\n    widths, heights = <span class=\"hljs-built_in\">zip<\/span>(*(i.size <span class=\"hljs-keyword\">for<\/span> i <span class=\"hljs-keyword\">in<\/span> images))\r\n\r\n    total_width = <span class=\"hljs-built_in\">sum<\/span>(widths)\r\n    max_height = <span class=\"hljs-built_in\">max<\/span>(heights)\r\n\r\n    new_image = Image.new(<span class=\"hljs-string\">'RGB'<\/span>, (total_width, max_height))\r\n\r\n    x_offset = <span class=\"hljs-number\">0<\/span>\r\n    <span class=\"hljs-keyword\">for<\/span> image <span class=\"hljs-keyword\">in<\/span> images:\r\n        new_image.paste(image, (x_offset, <span class=\"hljs-number\">0<\/span>))\r\n        x_offset += image.width\r\n\r\n    new_image.save(output_file)\r\n\r\n<span class=\"hljs-comment\"># \u4f7f\u7528\u793a\u4f8b<\/span>\r\ninput_folder = <span class=\"hljs-string\">\"path\/to\/input\/folder\/\"<\/span>\r\noutput_file = <span class=\"hljs-string\">\"path\/to\/output\/file.jpg\"<\/span>\r\njoin_images(input_folder, output_file)\r\n<\/code><\/pre>\n<p>Please replace input_folder with the path to the folder containing the images to be stitched together, and replace output_file with the file path for the output stitched image. When the function is run, all the images in the folder will be stitched together horizontally and saved as the specified output file.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Python, you can use the Python Imaging Library (PIL) library for image processing and stitching. Here is a method for batch stitching images. from PIL import Image import os def join_images(input_folder, output_file): images = [] for filename in os.listdir(input_folder): if filename.endswith(&#8220;.jpg&#8221;) or filename.endswith(&#8220;.png&#8221;): images.append(Image.open(os.path.join(input_folder, filename))) widths, heights = zip(*(i.size for i in images)) total_width [&hellip;]<\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[453,1402,299,1404,1403],"class_list":["post-16184","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-development","tag-guide","tag-programming","tag-technology","tag-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to batch concatenate images in Python? - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn about how to batch concatenate images in python?. Comprehensive guide with examples and best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to batch concatenate images in Python?\" \/>\n<meta property=\"og:description\" content=\"Learn about how to batch concatenate images in python?. Comprehensive guide with examples and best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T12:29:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-07T00:53:47+00:00\" \/>\n<meta name=\"author\" content=\"Liam\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Liam\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/\"},\"author\":{\"name\":\"Liam\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\"},\"headline\":\"How to batch concatenate images in Python?\",\"datePublished\":\"2024-03-15T12:29:06+00:00\",\"dateModified\":\"2025-08-07T00:53:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/\"},\"wordCount\":84,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Development\",\"guide\",\"programming\",\"technology\",\"tutorial\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/\",\"name\":\"How to batch concatenate images in Python? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T12:29:06+00:00\",\"dateModified\":\"2025-08-07T00:53:47+00:00\",\"description\":\"Learn about how to batch concatenate images in python?. Comprehensive guide with examples and best practices.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to batch concatenate images in Python?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671\",\"name\":\"Liam\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g\",\"caption\":\"Liam\"},\"sameAs\":[\"http:\/\/Wilson\"],\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to batch concatenate images in Python? - Blog - Silicon Cloud","description":"Learn about how to batch concatenate images in python?. Comprehensive guide with examples and best practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/","og_locale":"en_US","og_type":"article","og_title":"How to batch concatenate images in Python?","og_description":"Learn about how to batch concatenate images in python?. Comprehensive guide with examples and best practices.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T12:29:06+00:00","article_modified_time":"2025-08-07T00:53:47+00:00","author":"Liam","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Liam","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/"},"author":{"name":"Liam","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671"},"headline":"How to batch concatenate images in Python?","datePublished":"2024-03-15T12:29:06+00:00","dateModified":"2025-08-07T00:53:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/"},"wordCount":84,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Development","guide","programming","technology","tutorial"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/","name":"How to batch concatenate images in Python? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T12:29:06+00:00","dateModified":"2025-08-07T00:53:47+00:00","description":"Learn about how to batch concatenate images in python?. Comprehensive guide with examples and best practices.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-batch-concatenate-images-in-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to batch concatenate images in Python?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/23786905eb7b377f45ddb01c17da7671","name":"Liam","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8d37ed3e7f770dde8bf069ba0b4298688028c3abaacf1131742fc1352d174ebd?s=96&d=mm&r=g","caption":"Liam"},"sameAs":["http:\/\/Wilson"],"url":"https:\/\/www.silicloud.com\/blog\/author\/liamwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16184","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=16184"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16184\/revisions"}],"predecessor-version":[{"id":49737,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/16184\/revisions\/49737"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=16184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=16184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=16184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}