pantallas-led/GenPoster/scripts/old/BusPlate.py

69 lines
2.1 KiB
Python
Raw Normal View History

2023-08-29 00:18:41 -04:00
import requests
import io
from io import BytesIO
from PIL import ImageDraw, ImageFont
from PIL import Image, ImageDraw, ImageFont
import matplotlib.pyplot as plt
import numpy as np
from MyDraw import MyDraw
class BusPlate(MyDraw):
def __init__(self, url=None) -> None:
if url is None:
self.url = "https://matriculasdelmundo.com/gRCH1.php"
pass
def set_url(self, url):
self.url = url
pass
def get_image(self):
if hasattr(self, 'image'):
return self.image
else:
print("Error: No se ha generado ninguna imagen aún.")
return None
def request_bus_plate(self, bus_plate=None):
if bus_plate is None:
self.bus_plate = "AABB11"
else:
self.bus_plate = bus_plate
params = {
"textRCH1": self.bus_plate[0:2],
"textRCH1A": self.bus_plate[2:4],
"textRCH1B": self.bus_plate[4:],
"textRCH1C": ""
}
self.response = requests.get(self.url, params=params)
pass
def save_bus_plate_image(self):
if self.response.status_code == 200:
filename = f"/app/data/output/plate_{self.bus_plate}.png"
with open(filename, "wb") as f:
f.write(self.response.content)
print(f"Imagen generada guardada como '{filename}'")
else:
print("Error al guardar la imagen generada")
pass
def generate_image(self):
image_bytes = io.BytesIO(self.response.content)
self.image = Image.open(image_bytes)
self.image = self.image.convert("RGBA") # Convertir a formato RGBA
pass
# def resize_image(self, new_size):
# proportion = np.min([self.image.size[0]/new_size[0], self.image.size[1]/new_size[1]])
# nx, ny = int(np.round(self.image.size[0]/proportion)), int(np.round(self.image.size[1]/proportion))
# self.image = self.image.resize((nx, ny))
# pass
def preview(self):
plt.imshow(self.image)
plt.axis('off')
plt.show()
pass