from escpos.printer import Network
from PIL import Image
import os 

def resize_image_to_fullwidth(img_src_name, target_width=580):
    # Open the image
    img = Image.open(img_src_name)

    # Get original dimensions
    width, height = img.size

    # Calculate new height to maintain aspect ratio
    aspect_ratio = height / width
    new_height = int(target_width * aspect_ratio)

    # Resize the image
    resized_img = img.resize((target_width, new_height), Image.LANCZOS)

    # Save the resized image
    name, ext = os.path.splitext(img_src_name)
    # Build destination filename
    dest_name = f"{name}_fullwidth{ext}"
    resized_img.save(dest_name)
    return dest_name

# Replace with your printer's IP address and port
p = Network("192.168.192.168", port=9100)

# Example printing
# p.set_with_default(align='center', font='a', bold=False, width=2, height=2, custom_size=True, smooth=True)
p.textln("Thanks babes")
img_names = ["img/1754661985256965s.jpg", "img/1754658917785283.png"]
img_name = resize_image_to_fullwidth(img_names[1])
p.image(img_name, impl='graphics');
# p.image("img/" + img_names[1], impl='bitImageColumn', center=True, high_density_horizontal=False, high_density_vertical=False);
p.cut()
