Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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.
|
| 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(
|
| 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
|
| 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)
|