# This Gradio app generates a QR code from a given URL and applies a sepia filter to the image. #reference https://github.com/lincolnloop/python-qrcode import numpy as np import qrcode import gradio as gr ## from qrcode.image.styledpil import StyledPilImage from qrcode.image.styles.moduledrawers.pil import HorizontalBarsDrawer ## def sepia(text1): # Generate a QR code from the input text ##img = qrcode.make(text1) qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_H) qr.add_data(text1) img=qr.make_image(image_factory=StyledPilImage, module_drawer=HorizontalBarsDrawer()) # Convert the QR code to a numpy array img_np = np.array(img.convert("RGB")) # Define the sepia filter matrix sepia_filter = np.array([ [1.0, 1.0, 1.0], [1.0, 1.0, 1.0], [1.0, 1.0, 1.0] ]) # Apply the sepia filter to the image sepia_img = img_np.dot(sepia_filter.T) # Normalize the image to the range [0, 255] sepia_img /= sepia_img.max() sepia_img *= 255 # Convert the image back to uint8 sepia_img = sepia_img.astype(np.uint8) # Return the sepia-filtered image #return img return sepia_img # Create a Gradio interface that takes a textbox input, runs it through the sepia function, and returns output to an image. demo = gr.Interface(sepia, gr.Textbox( label="Enter Website URL", info="Kindly include 'https://'", lines=7, value="", ), "image", theme=gr.themes.Monochrome(), title = 'QR Code Maker', css='footer {visibility: hidden}') # Launch the interface. if __name__ == "__main__": demo.launch()