Give every placeholder a real img src, add FAQ and contact sections, and put categories first in the header. Co-authored-by: Cursor <cursoragent@cursor.com>
88 lines
3.0 KiB
Python
88 lines
3.0 KiB
Python
#!/usr/bin/env python3
|
|
import struct
|
|
import zlib
|
|
from pathlib import Path
|
|
|
|
COLORS = {
|
|
"purple": (216, 198, 255),
|
|
"cyan": (165, 243, 252),
|
|
"rose": (254, 205, 211),
|
|
}
|
|
|
|
IMAGES = [
|
|
("slider-1.png", 960, 420, "purple"),
|
|
("slider-2.png", 960, 420, "rose"),
|
|
("slider-3.png", 960, 420, "cyan"),
|
|
("side-banner-1.png", 360, 200, "cyan"),
|
|
("side-banner-2.png", 360, 200, "rose"),
|
|
("category-1.png", 160, 160, "purple"),
|
|
("category-2.png", 160, 160, "rose"),
|
|
("category-3.png", 160, 160, "cyan"),
|
|
("category-4.png", 160, 160, "purple"),
|
|
("category-5.png", 160, 160, "cyan"),
|
|
("category-6.png", 160, 160, "rose"),
|
|
("category-7.png", 160, 160, "purple"),
|
|
("category-8.png", 160, 160, "rose"),
|
|
("sale-banner.png", 240, 400, "rose"),
|
|
("sale-1.png", 280, 340, "purple"),
|
|
("sale-2.png", 280, 340, "rose"),
|
|
("sale-3.png", 280, 340, "cyan"),
|
|
("sale-4.png", 280, 340, "purple"),
|
|
("sale-5.png", 280, 340, "cyan"),
|
|
("sale-6.png", 280, 340, "rose"),
|
|
("sale-7.png", 280, 340, "purple"),
|
|
("sale-8.png", 280, 340, "cyan"),
|
|
("banner-dual-1.png", 640, 280, "purple"),
|
|
("banner-dual-2.png", 640, 280, "cyan"),
|
|
("top-1.png", 280, 340, "purple"),
|
|
("top-2.png", 280, 340, "cyan"),
|
|
("top-3.png", 280, 340, "rose"),
|
|
("top-4.png", 280, 340, "purple"),
|
|
("top-5.png", 280, 340, "cyan"),
|
|
("top-6.png", 280, 340, "rose"),
|
|
("top-7.png", 280, 340, "purple"),
|
|
("top-8.png", 280, 340, "cyan"),
|
|
("banner-triple-1.png", 420, 240, "rose"),
|
|
("banner-triple-2.png", 420, 240, "cyan"),
|
|
("banner-triple-3.png", 420, 240, "purple"),
|
|
("yeganeh-1.png", 280, 340, "purple"),
|
|
("yeganeh-2.png", 280, 340, "rose"),
|
|
("yeganeh-3.png", 280, 340, "cyan"),
|
|
("yeganeh-4.png", 280, 340, "purple"),
|
|
("yeganeh-5.png", 280, 340, "rose"),
|
|
("yeganeh-6.png", 280, 340, "cyan"),
|
|
("about.png", 560, 400, "purple"),
|
|
("blog-1.png", 360, 220, "purple"),
|
|
("blog-2.png", 360, 220, "cyan"),
|
|
("blog-3.png", 360, 220, "rose"),
|
|
("blog-4.png", 360, 220, "purple"),
|
|
("enamad.png", 80, 80, "purple"),
|
|
("samandehi.png", 80, 80, "cyan"),
|
|
]
|
|
|
|
|
|
def chunk(tag: bytes, data: bytes) -> bytes:
|
|
return struct.pack(">I", len(data)) + tag + data + struct.pack(">I", zlib.crc32(tag + data) & 0xFFFFFFFF)
|
|
|
|
|
|
def write_png(path: Path, width: int, height: int, rgb: tuple[int, int, int]) -> None:
|
|
row = b"\x00" + bytes(rgb) * width
|
|
raw = row * height
|
|
with path.open("wb") as handle:
|
|
handle.write(b"\x89PNG\r\n\x1a\n")
|
|
handle.write(chunk(b"IHDR", struct.pack(">IIBBBBB", width, height, 8, 2, 0, 0, 0)))
|
|
handle.write(chunk(b"IDAT", zlib.compress(raw, 9)))
|
|
handle.write(chunk(b"IEND", b""))
|
|
|
|
|
|
def main() -> None:
|
|
out = Path(__file__).resolve().parents[1] / "public" / "images"
|
|
out.mkdir(parents=True, exist_ok=True)
|
|
for name, width, height, tone in IMAGES:
|
|
write_png(out / name, width, height, COLORS[tone])
|
|
print(name)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|