habulaj commited on
Commit
0207b39
·
verified ·
1 Parent(s): 7fdfb7b

Update routers/profanity.py

Browse files
Files changed (1) hide show
  1. routers/profanity.py +27 -11
routers/profanity.py CHANGED
@@ -1,6 +1,6 @@
1
  from fastapi import APIRouter, Query, HTTPException
2
  from fastapi.responses import StreamingResponse
3
- from PIL import Image, ImageDraw
4
  from io import BytesIO
5
  import requests
6
  from typing import Optional
@@ -31,33 +31,49 @@ def resize_and_crop_to_fill(img: Image.Image, target_width: int, target_height:
31
  right = left + target_width
32
  bottom = top + target_height
33
 
34
- img_cropped = img_resized.crop((left, top, right, bottom))
35
- return img_cropped
36
 
37
  def create_canvas(image_url: Optional[str] = None) -> BytesIO:
38
  width, height = 1080, 1350
39
  canvas = Image.new("RGB", (width, height), color=(255, 255, 255))
40
 
41
- # Preencher com imagem se fornecida
42
  if image_url:
43
  img = download_image_from_url(image_url)
44
- img_filled = resize_and_crop_to_fill(img, width, height)
45
- canvas.paste(img_filled, (0, 0))
46
 
47
- # Desenhar header_bar
48
  draw = ImageDraw.Draw(canvas)
49
- header_color = (255, 254, 255)
50
- draw.rectangle([(0, 40), (1080, 40 + 70)], fill=header_color)
51
 
52
- # Inserir logo CNN
 
 
 
53
  try:
54
  logo_url = "https://huggingface.co/spaces/habulaj/newapi/resolve/main/cnn.png"
55
  logo = download_image_from_url(logo_url)
56
  logo_resized = logo.resize((104, 104), Image.LANCZOS)
57
- canvas.paste(logo_resized, (12, 21), logo_resized) # Usa canal alpha como máscara
58
  except Exception as e:
59
  raise HTTPException(status_code=500, detail=f"Erro ao carregar logo: {e}")
60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  # Exportar imagem final
62
  buffer = BytesIO()
63
  canvas.save(buffer, format="PNG")
 
1
  from fastapi import APIRouter, Query, HTTPException
2
  from fastapi.responses import StreamingResponse
3
+ from PIL import Image, ImageDraw, ImageFont
4
  from io import BytesIO
5
  import requests
6
  from typing import Optional
 
31
  right = left + target_width
32
  bottom = top + target_height
33
 
34
+ return img_resized.crop((left, top, right, bottom))
 
35
 
36
  def create_canvas(image_url: Optional[str] = None) -> BytesIO:
37
  width, height = 1080, 1350
38
  canvas = Image.new("RGB", (width, height), color=(255, 255, 255))
39
 
40
+ # Preenchimento com imagem (caso enviada)
41
  if image_url:
42
  img = download_image_from_url(image_url)
43
+ filled_img = resize_and_crop_to_fill(img, width, height)
44
+ canvas.paste(filled_img, (0, 0))
45
 
 
46
  draw = ImageDraw.Draw(canvas)
 
 
47
 
48
+ # Header rosa claro
49
+ draw.rectangle([(0, 40), (1080, 110)], fill=(255, 254, 255))
50
+
51
+ # Logo CNN
52
  try:
53
  logo_url = "https://huggingface.co/spaces/habulaj/newapi/resolve/main/cnn.png"
54
  logo = download_image_from_url(logo_url)
55
  logo_resized = logo.resize((104, 104), Image.LANCZOS)
56
+ canvas.paste(logo_resized, (12, 21), logo_resized)
57
  except Exception as e:
58
  raise HTTPException(status_code=500, detail=f"Erro ao carregar logo: {e}")
59
 
60
+ # Texto "Pense bem, pense CNN."
61
+ try:
62
+ font_path = "fonts/Inter-Bold.otf"
63
+ font_size = 38
64
+ font = ImageFont.truetype(font_path, font_size)
65
+ text = "PENSE BEM, PENSE CNN."
66
+
67
+ x = 138
68
+ y = 52
69
+ letter_spacing = 1 # 1% tracking aproximado
70
+
71
+ for char in text:
72
+ draw.text((x, y), char, font=font, fill=(0, 0, 0))
73
+ x += draw.textlength(char, font=font) + letter_spacing
74
+ except Exception as e:
75
+ raise HTTPException(status_code=500, detail=f"Erro ao carregar fonte: {e}")
76
+
77
  # Exportar imagem final
78
  buffer = BytesIO()
79
  canvas.save(buffer, format="PNG")