Frontend is now working

This commit is contained in:
Zeecka
2025-12-09 22:16:53 +01:00
parent e271c15b56
commit 6d75f55a73
2 changed files with 21 additions and 16 deletions
+10 -15
View File
@@ -110,17 +110,13 @@ def analyze_image_resize(input_img: Path, output_dir: Path) -> None:
# 1. Setup Paths
input_img = Path(input_img)
output_dir = Path(output_dir)
extracted_dir = output_dir / "image_resize_output_dir"
# 2. CREATE THE DIRECTORY (Crucial Step!)
extracted_dir.mkdir(parents=True, exist_ok=True)
# 3. Initialize Logs
logs = []
recovered_image = None
try:
with open(input_img, "rb") as image:
with input_img.open("rb") as image:
f = image.read()
b = bytearray(f)
@@ -130,8 +126,6 @@ def analyze_image_resize(input_img: Path, output_dir: Path) -> None:
if IHDR == -1:
logs.append("Failure: PNG header (IHDR) not found.")
update_data(output_dir, {"image_resize": {"status": "error", "error": "PNG header not found."}})
if extracted_dir.exists():
shutil.rmtree(extracted_dir, ignore_errors=True)
return
# Calculate Chunk Length (The 4 bytes BEFORE IHDR tag)
@@ -161,8 +155,11 @@ def analyze_image_resize(input_img: Path, output_dir: Path) -> None:
logs.append(f"Success: Match found! Dimensions: {width}x{height}")
# Create Output Filename
output_filename = f"recovered_{width}x{height}.png"
output_path = extracted_dir / output_filename
img_name = f"recovered_{width}x{height}.png"
# Create parent directories if they don't exist
output_dir.mkdir(parents=True, exist_ok=True)
output_path = output_dir / img_name
# Splicing: [Start...IHDR+4] + [W] + [H] + [IHDR+12...End]
full_png_data = b[:IHDR+4] + width_bytes + height_bytes + b[IHDR+12:]
@@ -171,7 +168,7 @@ def analyze_image_resize(input_img: Path, output_dir: Path) -> None:
with output_path.open("wb") as out_f:
out_f.write(full_png_data)
recovered_image = output_filename
recovered_image = Path(output_dir.name) / img_name
break # Stop looking after finding the match
if not match_found:
@@ -181,15 +178,13 @@ def analyze_image_resize(input_img: Path, output_dir: Path) -> None:
output_data = {
"image_resize": { # Key name must match your module name in AperiSolve
"status": "ok",
"output": logs,
"images": recovered_image, # Tells frontend to display the image
"output": logs
}
}
if recovered_image:
output_data["image_resize"]["image"] = "/image/" + str(recovered_image)
update_data(output_dir, output_data)
except Exception as e:
update_data(output_dir, {"image_resize": {"status": "error", "error": str(e)}})
if extracted_dir.exists():
shutil.rmtree(extracted_dir, ignore_errors=True)
return None
+11 -1
View File
@@ -8,6 +8,7 @@ const TOOL_ORDER = [
"steghide",
"zsteg",
"strings",
"image_resize",
];
function escapeHtml(text) {
@@ -248,7 +249,7 @@ function parseResult(result) {
analyzer.className = `analyzer a-${escapeHtml(tool)}`;
resultDiv.appendChild(analyzer);
analyzer.innerHTML += `<h2>${capitalize(tool)}</h2>`;
analyzer.innerHTML += `<h2>${capitalize(tool.replace("_"," "))}</h2>`;
if (result[tool]["status"] === "ok") {
if ("images" in result[tool]) {
@@ -270,7 +271,16 @@ function parseResult(result) {
}
}
}
if ("image" in result[tool]) {
// Parse image output
analyzer.innerHTML += `<div class='results_img'><img src='${escapeHtml(
result[tool]["image"]
)}'/></div>`;
}
// Parse text output
if (typeof result[tool]["output"] === "string") {
analyzer.innerHTML += `<pre>${escapeHtml(