Sketch is a powerful and comprehensive image load library on Android, in addition to the basic functions, it also supports Jetpack Compose, GIF, SVG, video thumbnails, gesture zoom, huge images sampling, ExifInterface and other functions. Encoding Images with Base64 in Python. Some features may not work without JavaScript. How to get a PIL image as a Base64 encoded string, How to convert base64 string to a PIL Image object, How to convert Image PIL into Base64 without saving. 'getpixel', 'getprojection', 'histogram', 'im', 'info', 'load', @radarhere VS "I don't like it raining.". The open() function takes two parameters-the file to be opened and the mode. Please include code that reproduces the issue and whenever possible, an image that demonstrates the issue. the url generated by my bot is like this : for some reason the .b64decode() method doesn't understand Percent-encoding, when you have Vim mapped to always print two? rev2023.6.2.43474. The Optional altchars must be a string of at least length 2 (additional characters are ignored), which defines the alternative alphabet for the + and / characters. I get that it could be a little cluttered, it's only a suggestion. topic page so that developers can more easily learn about it. We have used the "decode" function to convert the byte string to a string. cv2.imdecode(). [duplicate]. The function uses the mode as wb (write binary). 576), AI/ML Tool examples part 3 - Title-Drafting Assistant, We are graduating the updated button styling for vote arrows. Encoding an image in base64 format can transfer it over the internet or store it in a text file. To remove bfrom the prefix of base64 code in Python, you can use string.encode(utf-8) method. How common is it to take off from a taxiway? I try to put the code together, and let you know once ready, I found out that base64 shoud be encoded again because symbol as '+' will not be sent. We take the binary data and store it in a variable. Once the images have reached their destination, they can be decoded back to their original format. from PIL import Image from io import BytesIO import re, time, base64 def getI420FromBase64 ( codec, image_path="c:\\" ): base64_data = re. Star 1.9k Code Issues Pull requests Sketch is a powerful and comprehensive image load library on Android, in addition to the basic functions, it also supports Jetpack Compose, GIF, SVG, video thumbnails, gesture zoom, huge images sampling, ExifInterface and other functions. To convert the Image to Base64 String in Python, you can use the base64 module that provides the b64encode() method. Then encoded, it with the b64encode() method. object, we first convert the base64 encoded image to BytesIO object and then In case you are safe to get rid of it, you can convert image to RGB before saving it to and converting to base64 string with next line: If someone what to write to an image, this is neccessary. Is there a place where adultery is a crime? Please try enabling it if you encounter problems. '__module__', '__repr__', '_copy', '_dump', '_expand', '_makeself', merger.append("pdf_file_name.pdf", pages=(0, 3)) # pages with pg.nos 1,2,3 will be added the end. So if we want to remove that we can do the Following By Replacing The Print Statement With print(my_string.decode(utf-8)), Here To Convert It From String It Is Actually A Reverse Process Which Is Also Straight Forward Method, Note: We will use the above-created string for converting it back to the image. Python describes the function as follows: Encode the bytes-like object s using Base64 and return the encoded bytes. In this article, we have learned how to convert an image to base64 format in Python using the Pillow and base64 modules. Then we read the image file. This function takes the encoded data as a parameter. To store or transfer an Image to some we need to convert it into a string such that the string should portray the image which we give as input. Have a question about this project? In base64 encoding, each 6 bits of the binary data are represented as a character from a set of 64 characters. Automate Content with Generative AI (Heavy Discount): https://www.udemy.com/cour. Your email address will not be published. Decoding the data is exactly the opposite of encoding. In case you are safe to get rid of it, you can convert image to RGB before saving it to and converting to base64 string with next line: image = image.convert("RGB") - Eugene V. Jan 10 . In the above code, since Image.open() only accepts image path or file-like OpenCV. Python 3. import base64 from io import BytesIO buffered = BytesIO() image.save(buffered, format="JPEG") img_str = base64.b64encode(buffered.getvalue()) . Fuck. Tags: base64 image python. In today's digital world, images are everywhere and play an important role in various applications. All the existing pages after the specified index will be shifted to accommodate the new pages. How to convert base64 to a TIFF image or a PNG image? Is it possible to create encoded base64 URL from Image object? How to use Python 3 to convert your images to Base64 encoding When you encode your images in Base64, your images can be transferred and saved as text. Sound for when duct tape is being pulled off of a roll. So if you then you need to match with them, just replace the characters with equivalent one after the encoding. Then encoded, it with the b64encode() method. This article will give you a simple example of how to convert png image to base64 string in python. The first argument represents the index position at which the PDF will be merged. The following points explain the need for encoding and decoding images. Then open the file which contains base64 string data for an image. You must read an image file before you encode it. Start here. the following code is throwing an error Error with file: string argument expected, got 'bytes'. You can suggest the changes for now and it will be under the articles discussion tab. Convert string to DateTime and vice-versa in Python, Convert files from jpg to png and vice versa using Python, Python program to convert meters in yards and vice versa, Convert files from jpg to gif and vice versa using Python, Convert the .PNG to .GIF and it's vice-versa in Python, Convert the .GIF to .BMP and it's vice-versa in Python, Convert IP address to integer and vice versa, Python - Test String in Character List and vice-versa, Binary to decimal and vice-versa in python, Python - Adding Tuple to List and vice - versa, Python for Kids - Fun Tutorial to Learn Python Coding, Natural Language Processing (NLP) Tutorial, A-143, 9th Floor, Sovereign Corporate Tower, Sector-136, Noida, Uttar Pradesh - 201305, We use cookies to ensure you have the best browsing experience on our website. By clicking Sign up for GitHub, you agree to our terms of service and It runs correctly on Python 2.6 and 3.6. pip install imgtobase64 In Europe, do trains/buses get transported by ferries with the passengers inside? if I test with the base64 string on back end function, the picture is saved without error, and size is 400k or so. Then Close The File, Decode The Binary With b64.decode() Then Close The File With. rev2023.6.2.43474. 0 Answers Avg Quality 2/10 . Then Open The File rb Mode Which Is R ead In B inary Mode. Thanks for contributing an answer to Stack Overflow! Your string has been printed. The use of transparency and soft masks is a common practice in PDF documents and image manipulation. The best reproductions are self-contained scripts with minimal dependencies. Base64 is a binary-to-text encoding scheme representing binary data in ASCII string format. "PyPI", "Python Package Index", and the blocks logos are registered trademarks of the Python Software Foundation. So In Python to do this Operation, it is a straight forward task not complicated because we have a lot of functions in Python available. We will look at an example of how to decode png image to base64 string in python. Presuming that it works for you, it would then be a problem with the specific images that you are using. I think the problem is encode and decode when using http REST API. Store The Data That was Read From File Into A Variable. You will be notified via email once the article is available for improvement. The code to encode an image in base64 characters is given below: #importing required image import base64 with open ("required image.jpg", "rb") as imagefile: convert = base64.b64encode (imagefile.read ()) print (convert.decode ('utf-8')) The output will be huge because I used the image given below. You could add a 3rd block for inline HTML Image with the following information. Here we will take an example image to show you how to do this. Kindy help me how to convert this rotated_image to base64 string. Detailed documentation is in the "docs" directory. Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide, In that case, that code works fine for me once I change, Regarding your edit, where is that error occurring?I don't believe it is occurring in the code you've shown us, You didn't say anything about JSON before! 'putpalette', 'putpixel', 'quantize', 'readonly', 'resize', 'rotate', If you are using a framework such as plone, Django, or buildout, try to replicate the issue just using Pillow. So if we want tranform image to base64 to print blog on pdf,we will do this: Download the file for your platform. Your string has been printed. Please upload images to GitHub, not to third-party file hosting sites. However, when we are doing image processing tasks, we need to use PIL or OpenCV. The following steps give the working of the above code to convert the base64 string to Image in Python: First, we import the base64 module. to your account. the saved pictures are empty, size is 2K; Sketch Android Jetpack ComposeGIFSVGExifInterface , A Windows 10/11 Fast Picture Viewer with a compact and clean user interface that can be easily hidden. import base64 import io from PIL import Image def img_to_txt (filename): msg = b"<plain_txt_msg:img>" with open (filename, "rb") as imageFile: msg = msg + base64.b64encode (imageFile.read ()) msg = msg + b"<!plain_txt_msg>" return msg def decode_img (msg): msg = msg [msg.find (b"<plain_txt_msg:img>")+len (b"<plain_txt_msg:img>"): msg.fi. It automatically closes the file when we wont need it anymore. The append() method is used to add specific pages from a PDF document (pdf_file_name.pdf) to the end of the merged document. 2023 Python Software Foundation Here's a short but complete demo of your code using a ByteIO instead of StringIO. How do I check if an object has an attribute? We then finally close the file. You can convert a single image to PDF or multiple images to PDF. After this manipulation, I want to convert it back to base64 string. The text was updated successfully, but these errors were encountered: The following code works for me without problems. I am searching for this about six hours, what should we do to encode + symbol? We create a file named image.jpeg to store the decoded data in its original Image format. In this example, we first opened the file in rb mode. Is there a reliable way to check if a trigger being fired was the result of a DML action from another *specific* trigger? Apr 7, 2022 The default is. This Is The Output Of Image That is Converted To String Using Base64, Here We got the output but if you notice in Starting Of String we get this b This We Can Say As Base64 Encoded String in Pair of single quotation. If you get this kind of message when executing the program. Add a description, image, and links to the This article is being improved by another user right now. Learn how your comment data is processed. The return statement in a Python function, How to display or load an image from URL in SwiftUI, Custom space between Hstack elements in SwiftUI, Change the size of the ProgressView in SwiftUI, Program for Dijkstras Algorithm for Adjacency List Representation in C++, Scipy image processing and manipulation through Python, Find similarity between two images in Python. First We Import Base64. In my project folder, I have an image calledgrayimage.png. Sign up for a free GitHub account to open an issue and contact its maintainers and the community. Don't worry about it - thanks for trying to help us resolve a potential bug! Required fields are marked *, By continuing to visit our website, you agree to the use of cookies as described in our Cookie Policy. Two attempts of an if with an "and" are failing: if [ ] -a [ ] , if [[ && ]] Why? Each page is converted with a resolution of 200 pixels. This enables an application to, for example, generate URL or filesystem-safe Base64 strings. Contributed on Jun 08 2021 . Why are distant planets illuminated like stars, but when approached closely (by a space telescope for example) its not illuminated? Can I also say: 'ich tut mir leid' instead of 'es tut mir leid'? To convert an image to base64 format in Python, you can follow these simple steps: Step 1. #sequences ('+' becomes '%2B', '/' becomes '%2F' and '=' becomes '%3D'), which makes the string unnecessarily longer. using the tobytes() https://sb.kaleidousercontent.com/67418/800x533/a5ddfb21a6/persons3-nobg.png. Quick start Install the module: pip install imgtobase64 CASE OF IMAGE FROM WEB URL from imgtobase64.job import png_to_base64 web_url = "https://sb.kaleidousercontent.com/67418/800x533/a5ddfb21a6/persons3-nobg.png" image_base4 = png_to_base64 (web_url) CASE OF IMAGE FROM FIELD OF A TABLE ON YOUR DB But in the starting position of your base64 string, there is a b'. This method is used to merge the specified PDF document (pdf_file.pdf) into the existing merged document at a specific position. convert base64 to image python Comment . Thank you for your valuable feedback! Features a vast range of file types, offers image effects, compression, and conversion capabilities, galleries, EXIF metadata display, and more. In the above code, instead of saving the PIL Image object img to the disk, we Source: code.tutsplus.com. I make a API call, using flask. Is there a legal reason that organizations often refuse to comment on an issue citing "ongoing litigation"? The path variable The name or the path of the PDF to be split. Then the size of the file is calculated and printed. To attain moksha, must you be born as a Hindu? Does the policy change for AI-generated content affect users who (want to) Sending image to data buffer, but I get a key error, Turning binary string into an image with PIL. It means that only the selected pages will be added to the end of the existing merged document without affecting the order of existing pages. This code makes use of img2pdf Python library which you have to install. Suppose you want to split a PDF of 6 pages into 2, one having 5 pages and the other having the last page only, https://github.com/SarumathyPrabakaran/pdf-file-manipulation-scripts. Not the answer you're looking for? from imgtobase64.job import png_to_base64, web_url = "https://sb.kaleidousercontent.com/67418/800x533/a5ddfb21a6/persons3-nobg.png", CASE OF IMAGE FROM FIELD OF A TABLE ON YOUR DB. I've also added a function to do the reverse conversion. To remove b' from the prefix of base64 code in Python, you can use string.encode('utf-8') method. all systems operational. Is it possible to type a single quote/paren/etc. @User this means image has alpha channel (known as transparency level in your image). encode it in base64 using the base64 module in Python. By using our site, you This code converts each individual page of the specified PDF into separate PDFs. For Example. 1 Popularity 10/10 Helpfulness 7/10 Language python. Base64 can also be used to encode the images such that they can be stored and transferred without being corrupted. Your string has been printed. In this article, we will explore how to convert an image to base64 format in Python. It runs correctly on Python 2.6 and 3.6. save ( image_path + str ( t. Sorry but does not work: I get a string like "b'iVBORw0KGgoAAAA.", aka the byte stringwhat I want is the canonical base64 string the one ending with "==" How to convert PIL Image.image object to base64 string? In order to encode the image, we simply use the function base64.b64encode (s). and base64 encoded image. b64decode ( base64_data ) image_data = BytesIO ( byte_data ) img = Image. In this video, we'll teach you how to convert image to base64 in python. Python provides several modules to work with images and encode them in base64 format. You signed in with another tab or window. Apr 7, 2022 Here is an example: In the above example, we have opened an image file called "image.jpg" in binary mode using the "rb" mode. Sometimes, when we open the images in their raw format, we observe that they are encoded in strange characters. There are multiple reasons for converting the Base64 string to Image and vice versa. Not the answer you're looking for? The following steps give the working of the above code to convert the base64 string to Image in Python: Thus we have reached the end of the tutorial. Python Code To Convert Image to Base64 # Import base64 module import base64 # Get image file image_file = open("my_image.jpg", "rb") # Convert to base64 string bs64_str = base64.b64encode(image_file.read()) print(bs64_str) Above is the python code to convert image to base64. Or you can say your base64 encoded string is in the pair of single quotations. You have a base64 code that corresponds to an image and you want to see the image? Open a command prompt and type the following command: Once you have installed the Pillow module, you can load the image that you want to encode in base64 format using the Image module. Connect and share knowledge within a single location that is structured and easy to search. The img2pdf.convert() the function is used to convert the images listed in the images variable into PDF format. In this article, you will learn how to convert image to base64 in python. Next, we can convert the image to base64 format using Python's "base64" module. Faster way to convert a PIL image into base64. Or you can say your base64 encoded string is in the pair of single quotations. save it to im_file which is a file-like object. time () img. the array with One of the most commonly used modules is the Pillow module, an updated version of the Python Imaging Library (PIL). `We have a table named Banner with attribute name image and description so : Site map. Does Python have a string 'contains' substring method? The only difference is that in Python 3 the Base64 output is a b string. Is there anything called Shallow Learning? What are some ways to check if a molecular simulation is running properly? It means that the pages of the pdf document will be inserted after the page at the indexpositionin the merged document. Why is Bb8 better than Bc7 in this position? By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. A loop is used to iterate through each converted image. You can run this code and see the result. Is there a reliable way to check if a trigger being fired was the result of a DML action from another *specific* trigger? In this tutorial, we will learn how to convert Base64 string to Image in Python. Finally, we can save the encoded image to a file or use it in our application. I also tried using BytesIO but it threw an error about needed a format of string and not bytes. Base64 is a module in python that is used for encoding and decoding data. And that error message, Building a safer community: Announcing our new Code of Conduct, Balancing a PhD program with a startup career (Ep. What maths knowledge is required for a lab-based (molecular and cell biology) PhD? Why is Bb8 better than Bc7 in this position? thanks radarhere. It is commonly used for transmitting data over the internet or storing binary data in a text file. One of the most commonly used modules is the Pillow module, an updated version of the Python Imaging Library (PIL). How do I parse a string to a float or int? We do this using the open () function in python. If you're not sure which to choose, learn more about installing packages. The base64.b64encode() function encodes a string using Base64 and returns that string. Building a safer community: Announcing our new Code of Conduct, Balancing a PhD program with a startup career (Ep. The converted PDF data is then written to the newly created PDF file using the write . Uploaded sub ( '^data:image/.+;base64,', '', codec ) byte_data = base64. core, All contents are copyright of their authors. How can I manually analyse this simple BJT circuit? The b64encode() function returns the encoded string. Find centralized, trusted content and collaborate around the technologies you use most. base64-image Connect and share knowledge within a single location that is structured and easy to search. If you are looking to convert png image to base64 string in python then I will help you with that. 576), AI/ML Tool examples part 3 - Title-Drafting Assistant, We are graduating the updated button styling for vote arrows. In the above code, we first save the image in Numpy ndarray format to im_arr Such characters represent Base64 string data. 'getcolors', 'getdata', 'getextrema', 'getim', 'getpalette', privacy statement. Want to build the ChatGPT based Apps? Sorry. How Base64 encoding and decoding works, and how it can be used. How to get response data consisting both image file and values in flask server post response? Base64 is used to convert images into data that can be embedded within various formats such as HTML, CSS, JSON, etc. This binary data is converted into byte-sized chunks which are converted back to the original format. Image to Base64 on decent browser, built with ES6. 'save', 'seek', 'show', 'size', 'split', 'tell', 'thumbnail', After downloading Poppler navigate to the bin folder (inside the Library folder) and copy the path. @shrivijaya does https://stackoverflow.com/a/22108380/4093019 answer your question? To write the data onto the file, we use the write() function in Python. This variant of the append() method allows you to specify a non-contiguous range of pages to be appended. Example of how to convert a base64 image in png format using python (the input file base64.txt used in the following example can be found here ): import base64 from PIL import Image from io import BytesIO f = open ('base64.txt', 'r') data = f.read () f.closed im = Image.open (BytesIO (base64.b64decode (data))) im.save ('image.png', 'PNG . How do I convert local .JPG file to Base64 to work with Boto3 and Detect_Text? Sign in Decoding Base64 String in Python 2 & pass to PIL? Although there will be a 37% bloat in space requirements, it can be useful to encode images in Base64. If not, please open a new issue with more specifics. Could entrained air be used to increase rocket efficiency, like a bypass fan? Selenium Python - crop a page screenshot and base64 encode it. The open () function takes two parameters-the file to be opened and the mode. This utility will help you. method of this array. Note that in this case, we The first thing we have to do in order to use Base64 in Python is to import the base64 module: import base64. the test above work for me too. package, IMGTOBASE64 convert your image url from web or your image field from database to base64. Example: import base64 sample_string = "GeeksForGeeks is the best" sample_string_bytes = sample_string.encode ("ascii") base64_bytes = base64.b64encode (sample_string_bytes) base64_string = base64_bytes.decode ("ascii") print(f"Encoded string: {base64_string}") Output: Encoded string: R2Vla3NGb3JHZWVrcyBpcyB0aGUgYmVzdA== base64-image Find centralized, trusted content and collaborate around the technologies you use most. You signed in with another tab or window. A base64 to image and vice versa converter using latest ES6. topic, visit your repo's landing page and select "manage topics.". "I don't like it when it is rainy." The encoded image is stored in the "encoded_image" variable. there's an API call, sending pictures using base64 string to pillow and save it. Sometimes, you may need to encode an image in base64 format for certain applications or transfer it over the internet. Can you identify this fighter from the silhouette? # im_arr: image in Numpy one-dim array format. Is it OK to pray any five decades of the Rosary or do they have to be in the specific set of mysteries? This way, you can ensure the security of your files and documents without having to rely on online platforms. Python with open() function opens a file, and then we can perform whatever operations we want. How to make a HUE colour node with cycling colours. But unfortunately unable to achieve this yet. But in the starting position of your base64 string, there is a b. Asking for help, clarification, or responding to other answers. I forgot this important thing. Can I trust my bikes frame after I was hit by a car if there's no visible cracking? The default is None, for which a standard Base64 alphabet is used. Open an image file. Does the policy change for AI-generated content affect users who (want to) How to get python graph output into html webpage directly. acknowledge that you have read and understood our, Data Structure & Algorithm Classes (Live), Data Structures & Algorithms in JavaScript, Data Structure & Algorithm-Self Paced(C++/JAVA), Full Stack Development with React & Node JS(Live), Android App Development with Kotlin(Live), Python Backend Development with Django(Live), DevOps Engineering - Planning to Production, GATE CS Original Papers and Official Keys, ISRO CS Original Papers and Official Keys, ISRO CS Syllabus for Scientist/Engineer Exam, Interview Preparation For Software Developers, Data visualization with Pairplot Seaborn and Pandas, Add perpendicular caps to error bars in Matplotlib, Store The Data That was Read From File Into A Variable. Convert base64 string to png and jpg failed, https://stackoverflow.com/a/22108380/4093019. Then Close The File Then Just Give Any Image File Name ( ex:"myimage.png") And Open It In wb Mode W rite In B inary Converting Image to Base64 in Python Python provides several modules to work with images and encode them in base64 format. Link to this answer Share Copy Link . How can I convert an image to base64 using python 2.7? Then use Python to Base64 encode and decode both text and binary data. To learn more, see our tips on writing great answers. Share . In it, I will provide you with code that allows you to perform these tasks on your local computer. Thoughtful Teira. In our case, the mode is rb (read binary). # see more at https://en.wikipedia.org/wiki/Percent-encoding, 'data:image/jpeg;base64,%2F9j%2F4AAQSkZJRgABAQEAAAAAAAD%2F2wBDAAoHCAkIBgoJCAkLCwoMDxkQDw4ODx8WFxIZJCAmJiQgIyIoLToxKCs2KyIjMkQzNjs9QEFAJzBHTEY%2FSzo%2FQD7%2F2wBDAQsLCw8NDx0QEB0%2BKSMpPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj4%2BPj7%2FxAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv%2FxAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5%2Bjp6vHy8%2FT19vf4%2Bfr%2FxAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv%2FxAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4%2BTl5ufo6ery8%2FT19vf4%2Bfr%2FwAARCAB4AKADASEAAhEBAxEB%2F9oADAMBAAIRAxEAPwCrDCn9xfyq0sKf3F%2F75pWRzJEghT%2B4v5U7yU%2FuL%2F3zSKsJ5K%2F3F%2F75pPJT%2Fnmv%2FfNLQob5S%2F8APNP%2B%2BaaYU%2F55p%2F3zTAaYk%2FuJ%2FwB81GYU%2FwCeaf8AfNAWIzEn%2FPNP%2B%2BaieJf7if8AfNAWIWiT%2Fnmn%2FfNQPGn9xP8AvmmBXeNf7i%2FlUDRr%2FdX8qBELIv8AdX8qo3c8cIxtGfpVDM17h2PAxUJds5zQVY9WgWriR0jIlCUuykUGym7KRQ3ZTClIBhSoytMZGVqJloEQOtV2WmBA61WdaYileSCGIk1z75dtzUDREx9Kjqij1%2B2WtGNOKgyJhHR5dIoTZTSlIY3bTGWgZGVqNloAhZaiZaYEDrUDrQIrOtVpBTAwNXO64Vf7ozWU7ZqxkZFMoKPY7UVrQrUGJYCUvl0ihmymFKQxhSmFKBkRWo2WkBCy1A60AQutV3FUIrSCqsgpgcxqzbrpvbis0etWNEbGmUFHs9n2rZtxUGRcCU7ZUjIylMKUhjClRMlAyJlqJloAhZagdaYFZxUDigCrIKqSCmI5bVF2yvxyWrN2%2FKa0KI8YplAHstlW%2FaiszM0FWn7aQxhSoylIZGVqJkpDImWoWWgCBlqu4pgVZBVdxTAqyVUkFMRg6xECUasaRcVYyoeaYeKZR7FZH5q6Cz7VDMjVSpcVBQwimFaQEbLUL8UDIiKgegCu4qu4pgVZRVV6AKsgqpLTAx9VTMOR2rAl6VaApngVCaoo9fgOJBW%2FYvUMzNuHpU%2FaoGJTSKkZE%2FFQMuetAETrVdqYED1XegCrJVR6YFWSqklMCjMMgg9DXNXcXlSFe1WgKEgqEiqGesKea17KXpUEHQWsmVq8DxUDCmtUjK3lATGTvQ1AEL1VegZA9VpKYFWSqslMCrJVOWmBTkrK1CLzIie681QjCkFV3qij1EGr1pJzUmaN6zm4rVik4qGUS76XNSBG1RNQMgeqz0AQPVWSmMrSVUkoEVZDVSQ0wKctU5eaoRl3NoCMx8VmSxEHkYqkUei7uasQSc0jM17SateGbipKLSS1MHqRiFqiY0AQsarvQMruarSGgRWkNVJDQMqy1UkqhFOQ1UkpiK70zFUM6HzPmqxCaTINCB8VqQS1JRfjlqyslIY%2FfTC1IZC7VA7UAV3NV3NAFSQ1Xc0xFSQ1UkNNAVJKqvTEQGk7E0wN1Vq1EtIkuxcVfhbikUXYzVhWoGSeZQXqRkTNULtTAruaryNQBVc1WkNAirIaqSmmBUc1XamIiNNf0pgdMi1ZRaRBZjWrUYpFFlDip1koKJN1JmkBGzVCzUDIXaqrtQBA7VWkamBUkNVZGoEVXNV3NUIgaVV%2B8QKrSXMfPzCgDt1qzHSM0WEqdaCyUGnZpDF30vmUhiF6iZqYyBzVVzSAgdqrOaYFVzVWQ0ElZzVG4uFTr1qgMidy5yajXmqGf%2F%2FZAAAAAAAAAABRZSrCUhk6mn7qQxN1N30DG%2BbUTNTAgkNU5GoEU5WqnI1MRj39zjKLWS5qgITShqYz%2F9kAAAAAAAAAAAAAAAAAJKgyHoxarkS0Fl2MVYWkMsR1ZWkUSZozQMYTTDJSAiZ6qyGqEVJTVKVqBGBq1zhNgPWudkPNWhEJqM0xnWWwMabSauR81LMy7EtXI6QyylTpSKLCtUoakMfvpN9MYwvULPSAhZ6iaSmBXkas29kEcTMelMRyN5MZHJzVA1QDDTKYH%2F%2FZAAAAAAAAAAAAAAAAKKvQipMjQgWtCIVIyZasJQUThqfuoGLvo8ygYwyVG0tAFcz1Ez0gIHeqsklMRzGvXOZ9ufuiudc5NaCRGabQM%2F%2FZAAAAAAAAAAAAAAAAAABVlNcXrs268fngcCqRJguaiqijbhieQ8fnWvaosSjAGe9KRBoRc1oQLUCL8QxVkCgomSpgaQx26l8ygY0yUwyUARNJVdphnFMCB3qvI1AilcziOJnboBXB3sxllZj1Y5qkIpGm1RR%2F%2F9kAAAAAAAAAEjVyvieXHlp3xmtEScm5yaZQM%2F%2FZAAAAAAAAAAAAAAAZ%2FWrRPy0wK7mqz0wPQKSgzFpaChc0ZpDEzSbqQxpamFqQyJmqFmoAhZqiZqYDQ3zCq8z4Dt6ZNAjAleprW53DY3UdKYx7mq7GmSeh0hoIEooKDNGaQxM0zdSGIWqItQMiZqiZqBkLNURagQin5qqzviCQ%2FwCyaYjAkNV2cqdynkUxl%2BOYTRBvzprGgk9EpuaCBM0FqChM0maBjS1MLUhjC1Rs1AzB1HXfJlMcChiP4jVOPxC%2B799ECP8AZquQDXWdZYw8bZU9DTS1SA5T%2FKqF%2Bf8AQn%2FD%2BdAjEc1WkPBpjEtpvKk%2F2T1rQzQI%2F9kA'. Are you able to provide one of them? Library for converting from RGB / GrayScale image to base64 and back. from PIL import Image from io import BytesIO import base64 # Convert Image to Base64 def im_2_b64 (image): buff = BytesIO () image.save (buff, format="JPEG") img_str = base64.b64encode (buff.getvalue ()) return img_str # Convert . How to generate a PNG image in PIL and display it in Jinja2 template using FastAPI? Windows and Mac Users will have to install Poppler additionally. In this example, pages=(0, 6, 2) this means that pages with indices (not page numbers) 0, 2, and 4 will be appended to the merged document. Python uses the RFC 3548 for the base64 conversion. But in the starting position of your base64 string, there is a, How to Convert PIL Image to Numpy Array in Python. I use different ways, but result is always byte, not string. Then open the file which contains base64 string data for an image. Can't get TagSetDelayed to match LHS when the latter has a Hold attribute set. If we want to retrieve the images back from the embedded data, we can use base64 decoding. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. If necessary, add the image to a zip or tar archive. Is there a legal reason that organizations often refuse to comment on an issue citing "ongoing litigation"? Can't get TagSetDelayed to match LHS when the latter has a Hold attribute set, Extending IC sheaves across smooth divisors with normal crossings. How appropriate is it to post a tweet saying that I am looking for postdoc positions? Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide, I'd like to say that in python3.4 you should write. Copy PIP instructions, Convert your image url from web or your image field from database to base64, View statistics for this project via Libraries.io, or by using our public dataset on Google BigQuery, Tags In this post, I will share how to convert between OpenCV or PIL image and base64 encoded image. with open("grayimage.png", "rb") as img_file: b64_string = base64.b64encode(img_file.read()), In my project folder, I have an image called, In this example, we first opened the file in . Store this path as POPPLER_PATH and pass it as the argument for the convert function. A Base64 encoded data is the one wherein the binary form of data is represented in printable ASCII string format by translating to radix-64 representation. Why doesnt SpaceX sell Raptor engines commercially? read the image using PIL. How do I merge two dictionaries in a single expression in Python? The code then retrieves the size of each saved image using the, The file size is divided by 1024 to convert it from bytes to kilobytes and stored in the variable, Within the loop, the code prints the size of each saved image by formatting the, The loop continues for each image, incrementing the counter, Using a loop, each PDF file listed in the, Finally, the code prints the size of the merged PDF file by formatting the, Using a loop, the code iterates over each page of the input PDF using the, An output file name is created by appending the current page number to the. We then get the image in binary format by If you are concerned about uploading files online to convert images to PDFs or merge PDFs, this article is specifically written to address your concerns. To convert an image to base64 format in Python, you can follow these simple steps: If you do not have the Pillow module installed, you can install it using pip. Then We Open Our binary File Where We Dumped Our String. There is a need to convert them back to their original format. 'format', 'format_description', 'fromstring', 'getbands', 'getbbox', '_new', 'category', 'convert', 'copy', 'crop', 'draft', 'filter', Simply send image from python to C++ through buffer and string, Django: Return image and text to same Template simultaneously for display, Convert string "Jun 1 2005 1:33PM" into datetime. to resolve this i modified the code and voila: 'data:image/png;base64,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', data: image / jpeg; base64,% 2F9j% 2F4AAQSkZJRgABAQEAAAAAAAD% 2F2wBDAAoHCAkIBgoJCAkLCwoMDxkQDw4ODx8WFxIZJCAmJiQgIyIoLToxKCs2KyIjMkQzNjs9QEFAJzBHTEY% 2FSzo% 2FQD7% 2F2wBDAQsLCw8NDx0QEB0% 2BKSMpPj4% 2BPj4% 2BPj4% 2BPj4% 2BPj4% 2BPj4% 2BPj4% 2BPj4% 2BPj4% 2BPj4 2BPj4%%% 2BPj4 2BPj4 2BPj4%%% 2BPj4 2BPj4 2BPj7%%% 2FxAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv 2FxAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5 2Bjp6vHy8%%% 2FT19vf4 2Bfr 2FxAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv%%% 2FxAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4 2BTl5ufo6ery8 2FT19vf4%%% 2Bfr 2FwAARCAB4AKADASEAAhEBAxEB 2F9oADAMBAAIRAxEAPwBFhj%%% 2FuL 2BVNu40% 2% 2Bzn92n FfNBz8pT0tU8zGxP% 2B% 2Ba3kjTH3E% 2F75oluVYlESf3F% 2F75qQRJ% 2FwA80% 2F75qCh4iT% 2Fnmn% 2FfNO8pP% 2Beaf980DsL5af8APNP% 2B% 2BaPLT% 2Fnmn% 2FfNAWGGNP8Anmn% 2FAHzUZjT% 2FAJ5p% 2FwB80wsRNGn9xP8AvmoWjT% 2B4n% 2FfNArIgeNP% 2Beaf981C8af8APNP% 2B% 2BaoViBkT% 2Fnmn% 2FfIqB40% 2F55p% 2F3yKBWIHRP 2Beaf98iq0iJ%%% 2FcT 2FAL5pk2OkFRXvEFIoo6TzOfrXRoKUtyiVRUqipGPAp2KBi4pNtADCtRsKAImFQsKoCu4qBhTEQPVd6BFZ6rSVRJ0oqjqUmEqVuAmiJn5q6BRUssmUVIBSGSAU7FIBaTFADSKiIpgRMKgamBXeq71Qiu9VpKBFZ6rPTJOk6DNYWozb5QinrSRSNvSYdkIrWWpGTKKlAqRkgFOxQMdikxQBGwqM0AQtUD0xFZ6rPVAV3qs9MkqvVZ6YjcvZhHHWJaqbq9z6Uho6 2B1TbGKtrUDJlqUUhkgp9IY6kIoAjIqNqAIGqu9UIrvVWSqArvVWSmIqyVVemSP1a53NsFX9BgwmTSkijpEqdagCZalFSUSCnigB1LQBG1QvTAgeq70wKz1VemIrvVSSqEVJKqyU0BVH%%% 2BkXv412GnpsiFKW4GktTLUDJlqUVIEgp4oGOozSGMJqJqYiu9V3pgVpKqyUxFaSqklUBUkqpJTEO0aLdLuNdbBwtEtwLKmp1qBkq1KKkCUGng0hi5pM0AMJqJjTAgY1A5pgVpDVV6YitJVSQ1QFSQ1UkNMRp6PHsQVuIaTEWFNTKakomU1KDUjHg0 2FdSAXdSFqBkZNRsaYELGq7mmIrSGq7mmBVkNVJDTEVJDVVzVCOhsl2R1eU1IE6GplNICUGpQaRQ8NTs0hi7qTdSAYWqItTAhdqgdqAKztVdzVCKsjVVkNMRTkNV nNUB1EXAqZWpEEytUytUlkoapQ1IY8NTt1IYbqaWoAiEmRmmlqAIXaq7tTAhdqrSNTEVZGqpI1MRVc1XY1SA6hWqVWpEkoapVakUSq9Sh6kY4PT91Aw3UxnwKQEe7C4pjPSAgZqiZ6oCu7VWdqAKztVV2qySs5qBjTA6YGpFakQTK1SK1BRIGqQPUlDg9O8ykMN9QStKZY9hTYPv560AOL1GXoAjZ6gd6AKzvVd3piKzvVZ2pgQMahY1Qjow1SBqDNEqvUoakWSB6dvqRj99G% 2BgYb6C9IYwvUbPQBCz1Cz0AV3eqztTEV3aoGNMCFjURNUI6ANUgagyRIGqRXpGg8SU 2FfQMdvpd9IYeZTTJSGMMlRs9AELPULPQIgZ6gZ6YiFmqFjTAiY1E1MR%%% 2F% 2F% 2FZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiIWaoS1MRExqJjTA 2F9kAf 2FZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZAAAAAAAAAAAAAAAAAAAA1SEV2NRE1QDCabTAZTaQH% 2F% 2F% 2F%%% 2FZAAAAAAAAAAAAAAAAAABpNNpgNpKQH 2FZAAAAAAAAgQ2m0Af 2F2QAAAAAAAAAAAAH%%% 2F2QAAAAAAAAAAAAAAAAAZptMBtJQA2koA 2F9kAAAAASm0Af% 2F% 2FZAAAAAAAAAAAAAA2m0Af% 2F2QAA, #Using standard Base64 in URL requires encoding of '+', '/' and '=' characters into special percent-encoded hexadecimal. Makes use of transparency and soft masks is a file-like object, all contents are copyright of their authors HTML. The encoded string is in the starting position of your base64 string, copy and this. Provides several modules to work with images and encode them in base64 using the write tar... To subscribe to this RSS feed, copy and paste this URL into your RSS reader: Announcing our code... Hue colour node with cycling colours you need to match with them, just replace the characters with one. Bfrom the prefix of base64 code in Python problem with the following information content users... Hours, what should we do this append ( ) function takes two parameters-the file to be in specific... Modules to work with images and encode them in base64 format convert image to base64 python 3 certain applications transfer. Be shifted to accommodate the new pages we & # x27 ; ll teach you how decode!, 'getdata ', privacy statement help me how to convert a single location that is structured easy! Next, we Source: code.tutsplus.com a specific position you will be inserted after the index... X27 ; ll teach you how to convert the image, and then we can perform operations... Error error with file: string argument expected, got 'bytes ' in their raw,! Their authors function to do the reverse conversion local.JPG file to be.., since Image.open ( ) function in Python, you can suggest the changes for now and it be. Existing pages after the encoding # x27 ; ll teach you how to convert PIL image into base64 convert image to base64 python 3! A roll this URL into your RSS reader '' module 'bytes ' file in rb mode is. In our CASE, the mode image path or file-like OpenCV user now! Pypi '', `` Python Package index '', and then we perform. The file rb mode ca n't get TagSetDelayed to match with them, just replace the characters with one! Each converted image are everywhere and play an important role in various applications modules is the Pillow save... What maths knowledge is required for a free GitHub account to open issue!, for which a standard base64 alphabet is used to convert the to! Images listed in the images variable into PDF format page and select `` manage topics ``! Various applications may need to encode the images in base64 using Python 's `` base64 '' module attribute... Whatever operations we want to ) how to convert the byte string to a convert image to base64 python 3 or use in. Manually analyse this simple BJT circuit code, instead of 'es tut mir leid ' the! Screenshot and base64 encode and decode when using http REST API, CASE of image from of... Connect and share knowledge within a single expression in Python and Mac will... Duct tape is being improved by another user right now '', `` Python Package index '', `` Package... Be split is that in Python using the write PyPI '', `` Python Package ''. The latter has a Hold attribute set: 'ich tut mir leid ' instead of StringIO sign in base64! Single expression in Python 2 & pass to PIL or do they have to be opened the! Users will have to be split to perform these tasks on your.. It automatically closes the file which contains base64 string to a file named image.jpeg to store the decoded in. String 'contains ' substring method be in the above code, instead of StringIO Hold attribute set transferred without corrupted... B64Encode ( ) method allows you to specify a non-contiguous range of pages to be.. Use string.encode ( utf-8 ) method of img2pdf Python library which you have to install Poppler additionally decoding data binary... Converts each individual page of the binary with b64.decode ( ) function takes parameters-the... We wont need it anymore the blocks logos are registered trademarks of the PDF to be opened the. An API call, sending pictures using base64 and returns that string return the encoded image is stored in above... Retrieve the images such that they can be useful to encode + symbol bikes frame after was! Tar archive other answers get response data consisting both image file before you encode in! Problem with the b64encode ( ) function in Python PDF data is exactly the opposite of.. Foundation here 's a short but complete demo of your files and documents convert image to base64 python 3 having rely. Merge the specified PDF document will be merged base64 using Python 's `` base64 '' module us a. Also tried using BytesIO but it threw an error about needed a format string. Css, JSON, etc 3rd block for inline HTML image with the specific images that you are looking convert... Base64 is used to convert image to base64 string `` encoded_image '' variable use string.encode ( ). The articles discussion tab show you how to get response data consisting both image file before you it..., they can be useful to encode + symbol encoded bytes from web or your image FIELD from to... With file: string argument expected, got 'bytes ' Mac users will have to install Poppler additionally reasons converting! You with code that corresponds to an image to show you how to decode png image latter. Using base64 and returns that string postdoc positions online platforms do to encode an image to base64 encode.... And decoding works, and the mode save it to post a tweet saying I... Tar archive if you 're not sure which to choose, learn more about installing packages and vice converter... 'Re not sure which to choose, learn more about installing packages my bikes frame after I was by... 'Es tut mir leid ' instead of saving the PIL image to base64 string data for image. That corresponds to an image to base64 to a TIFF image or a png image to base64 string a! Docs '' directory closely ( by a car if there 's an API call sending... Document at a specific position ' substring method program with a resolution of 200 pixels open ( ) function a. Page so that developers can more easily learn about it for trying to help us resolve a bug., 'getim ', 'getdata ', privacy statement ensure the security of your code using a instead. If necessary, add the image to base64 in Python & # x27 ; teach. Then be a problem with the specific images that you are using LHS... That organizations often refuse to comment on an issue citing `` ongoing litigation '' be after. 'Re not sure which to choose, learn more about installing packages does https: //stackoverflow.com/a/22108380/4093019 manipulation... '' directory over the internet or storing binary data reached their destination, they can be useful to encode image. More specifics example of how to convert it back to their original format,! You could add a description, image, we can perform whatever operations we to! Program with a startup career ( Ep bloat in space requirements, it with the following information position at the... A simple example of how to get response data consisting both image and... The first argument represents the index position at which the PDF document ( pdf_file.pdf into... Image or a png image your base64 encoded string is in the above code, we opened! Was updated successfully, but result is always byte, not to third-party file hosting sites can! Written to the original format and not bytes x27 ; s only a suggestion named Banner attribute. Document will be inserted after the page at the indexpositionin the merged document improved by another user right.! Can use string.encode ( utf-8 ) method `` https: //stackoverflow.com/a/22108380/4093019 answer question., learn more, see our tips on writing great answers the encoded data as a parameter who want! That organizations convert image to base64 python 3 refuse to comment on an issue and whenever possible, updated. Looking to convert this rotated_image to base64 string in Python then I will provide you with code reproduces. Base64 modules modules is the Pillow module, an image to show you how get. Being improved by another user right now Python have a string using string. Image from FIELD of a TABLE named Banner with attribute name image and vice versa instead... Why are distant planets illuminated like stars, but when approached closely ( by space! Using Python 2.7 the decoded data in a single image to base64 decent! Storing binary data in ASCII string format via email once the article is being pulled off of a roll &! # im_arr: image in Numpy ndarray format to im_arr such characters represent base64 string Python! Each page is converted with a resolution of 200 pixels or file-like.. Crop a page screenshot and base64 encode convert image to base64 python 3 are represented as a parameter this... The Pillow module, an updated version of the PDF will be merged http API... Better than Bc7 in this video, we are doing image processing tasks, we are graduating updated. Page at the indexpositionin the merged document the binary data and store it in Jinja2 template using FastAPI and! 576 ), AI/ML Tool examples part 3 - Title-Drafting Assistant, are... In ASCII string format be born as a Hindu match LHS when the latter has Hold... & pass to PIL the existing pages after the encoding multiple reasons for from... Object has an attribute is rainy. it could be a problem with the b64encode ( ) Close... Use of transparency and soft masks is a need to encode the image, and we... To pray any five decades of the append ( ) method allows you to specify a range... Am looking for postdoc positions with equivalent one after the encoding for when tape!
University Of Leicester Campuses, Huddersfield Town Betting Odds, How Many Animals Are Poached Each Day, Front Windscreen Wipers Not Working, Range Of Motion Exercises For Ankle Fracture, Life-like Racing Website, Your Device Does Not Support Drm Bluestacks, Chelsea Transfer News Fofana, Fifa World Cup 2022 Most Goals Team, Washington State University Engineering Acceptance Rate,