HedronCreeper commited on
Commit
c300287
·
verified ·
1 Parent(s): 33c9aaf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +4 -7
app.py CHANGED
@@ -14,13 +14,13 @@ MIN_SIZE = 200
14
  def calc_size(payload_bytes):
15
  total_bits = (len(payload_bytes) + 4) * 8
16
  pixels_needed = math.ceil(total_bits / 6)
17
- side = max(MIN_SIZE, math.ceil(math.sqrt(pixels_needed * 1.15)))
18
  return side, side
19
 
20
  def make_base_image(w, h):
21
  img = Image.new("RGB", (w, h), BG_COLOR)
22
  draw = ImageDraw.Draw(img)
23
- font_size = max(20, min(w, h) // 5)
24
  try:
25
  font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", font_size)
26
  except:
@@ -70,7 +70,7 @@ def embed(payload):
70
  data = header + payload
71
  bits = bits_from_bytes(data)
72
  if len(bits) > len(carriers) * BITS_PER_CHANNEL * 3:
73
- raise ValueError("Data too large even for max canvas.")
74
  pixels = img.load()
75
  bit_idx = 0
76
  for (x, y) in carriers:
@@ -138,10 +138,7 @@ def encode_file():
138
  if len(raw) > MAX_BYTES:
139
  return jsonify({"error": f"File too large: {len(raw)/1024/1024:.2f}MB. Max is 5MB."}), 400
140
  fname = f.filename or ""
141
- if fname.endswith(".pdf"):
142
- mode = b'\x02'
143
- else:
144
- mode = b'\x01'
145
  payload = mode + raw
146
  try:
147
  img = embed(payload)
 
14
  def calc_size(payload_bytes):
15
  total_bits = (len(payload_bytes) + 4) * 8
16
  pixels_needed = math.ceil(total_bits / 6)
17
+ side = max(MIN_SIZE, math.ceil(math.sqrt(pixels_needed * 1.6)))
18
  return side, side
19
 
20
  def make_base_image(w, h):
21
  img = Image.new("RGB", (w, h), BG_COLOR)
22
  draw = ImageDraw.Draw(img)
23
+ font_size = max(10, int(min(w, h) * 0.40))
24
  try:
25
  font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", font_size)
26
  except:
 
70
  data = header + payload
71
  bits = bits_from_bytes(data)
72
  if len(bits) > len(carriers) * BITS_PER_CHANNEL * 3:
73
+ raise ValueError("Data too large even after sizing. Try compressing your file.")
74
  pixels = img.load()
75
  bit_idx = 0
76
  for (x, y) in carriers:
 
138
  if len(raw) > MAX_BYTES:
139
  return jsonify({"error": f"File too large: {len(raw)/1024/1024:.2f}MB. Max is 5MB."}), 400
140
  fname = f.filename or ""
141
+ mode = b'\x02' if fname.lower().endswith(".pdf") else b'\x01'
 
 
 
142
  payload = mode + raw
143
  try:
144
  img = embed(payload)