--- title: Image Editor emoji: 🐠 colorFrom: green colorTo: indigo sdk: gradio sdk_version: 5.37.0 app_file: app.py pinned: false --- # ImageResizer Batch download, resize, and export product images via a Gradio web UI. Designed for e-commerce catalog workflows where image URLs live in Excel workbooks. ## Run locally ```bash pip install -r requirements.txt python app.py ``` Or install as a package: ```bash pip install -e . python app.py ``` ## Project layout ``` ImageResizer/ ├── app.py # Hugging Face Spaces entry point ├── Template.xlsm # Workbook template (download from UI in workbook mode) ├── image_resizer/ │ ├── config.py # Constants and settings │ ├── models.py # Shared types (ImageItem, ProcessResult) │ ├── failure_log.py # Failed download logging │ ├── downloader.py # HTTP / cloudscraper / Selenium downloads │ ├── image_ops.py # Resize, format conversion, save │ ├── pipeline.py # Download + process + ZIP orchestration │ ├── workbook.py # Excel workbook parsing │ ├── processor.py # High-level processing (no UI) │ └── ui/ │ ├── theme.py # CSS and HTML assets │ ├── handlers.py # Gradio event handlers │ └── demo.py # build_demo() — Gradio Blocks assembly ├── requirements.txt └── pyproject.toml ``` ## Input modes - **Upload Workbook** — Parse `.xlsx`/`.xlsm` files with an `ItemCode` column and URL/image/link columns. Use **Download Template** beside the upload field to get `Template.xlsm` from the project root. - **Upload Images** — Process local image files or a single pasted URL ## Workbook template Place `Template.xlsm` at the repository root. The app serves it via the **Download Template** button in workbook mode. Commit this file to git so Hugging Face Spaces can serve it. ### Clear Data button (Cleared Data sheet) `ClearClearedData.bas` provides **Clear Data** for the Cleared Data worksheet (clears B2 onward; keeps row 1 and column A). 1. Import `ClearClearedData.bas`. 2. Run macro `CreateClearDataButton` once, **or** add a Form Control button on Cleared Data assigned to `ClearClearedDataSheet`. 3. Clicking the button asks for confirmation, then clears data contents only (no row/column/format deletion). ### Amazon URL auto-cleaner (Excel VBA) `AmazonUrlCleaner.bas` strips Amazon image size modifiers (e.g. `._AC_SL1500_`) automatically when URLs are typed or pasted. **Scope:** Manual and WriteBuffer sheets only, cells from B2 onward (never row 1 or column A). **Install into `Template.xlsm`:** 1. Open the workbook → Alt+F11. 2. File → Import File → select `AmazonUrlCleaner.bas` only. 3. Open **ThisWorkbook** (do not import the txt file). Paste the `Workbook_SheetChange` procedure from `AmazonUrlCleaner_ThisWorkbook.txt`. 4. Debug → Compile VBAProject, then save as `.xlsm`. ## Hugging Face Spaces This repo is configured for [Hugging Face Spaces](https://huggingface.co/docs/hub/spaces-config-reference). The Space uses root `app.py` as the entry point. Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference