{"id":23339772,"url":"https://github.com/tiritibambix/imaguick","last_synced_at":"2025-04-07T14:39:44.733Z","repository":{"id":268770883,"uuid":"905285554","full_name":"tiritibambix/ImaGUIck","owner":"tiritibambix","description":"ImaGUIck is a free and open-source software, using ImageMagick®, used for editing and manipulating digital images. It can be used to edit or convert images, and supports a wide range of file formats, including JPEG, PNG, GIF, TIFF, PDF and RAW files.","archived":false,"fork":false,"pushed_at":"2025-02-24T14:45:11.000Z","size":1388,"stargazers_count":16,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-03T21:40:47.002Z","etag":null,"topics":["docker","docker-compose","docker-container","image-manipulation","image-processing","imagemagick"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tiritibambix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-18T14:19:17.000Z","updated_at":"2025-03-29T11:59:49.000Z","dependencies_parsed_at":"2024-12-31T18:19:55.782Z","dependency_job_id":"48d9c8bf-6cd7-4c35-88e9-a8875e6fbe5b","html_url":"https://github.com/tiritibambix/ImaGUIck","commit_stats":null,"previous_names":["tiritibambix/imagemagicksimplegui","tiritibambix/imaguick"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiritibambix%2FImaGUIck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiritibambix%2FImaGUIck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiritibambix%2FImaGUIck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tiritibambix%2FImaGUIck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tiritibambix","download_url":"https://codeload.github.com/tiritibambix/ImaGUIck/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247672884,"owners_count":20977029,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","docker-container","image-manipulation","image-processing","imagemagick"],"created_at":"2024-12-21T04:14:53.041Z","updated_at":"2025-04-07T14:39:44.726Z","avatar_url":"https://github.com/tiritibambix.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/tiritibambix/ImaGUIck/refs/heads/main/static/media/imaguick-banner-opacity.png\" width=\"400\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Platform-amd64%20%7C%20arm64-blue\" alt=\"Platform Support\" /\u003e\n  \u003ca href=\"https://github.com/tiritibambix/ImaGUIck/actions/workflows/github-code-scanning/codeql\"\u003e\n    \u003cimg src=\"https://github.com/tiritibambix/ImaGUIck/actions/workflows/github-code-scanning/codeql/badge.svg\" alt=\"CodeQL\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\nImaGUIck is a simple and intuitive web application for batch image processing, providing a user-friendly graphical interface to resize and convert your images.\n\n## ⚠️ Security Notice\n\nThis application is designed for local usage only. While it can be exposed to the internet, doing so is at your own risk and not recommended without implementing additional security measures. The application does not include built-in authentication or advanced security features.\n\n## ✨ Features\n\n- 🖼️ **Single or Batch Image Processing**:\n  - Process individual images\n  - Batch process multiple images with ZIP export\n  - Clear success/error feedback for each operation\n- 📏 **Flexible Resizing Options**:\n  - By specific dimensions (width x height)\n  - By percentage\n  - With or without aspect ratio preservation\n  - One-click 1080p option for social media optimization (resizes longest edge to 1080px while preserving aspect ratio)\n- 🔄 **Smart Format Support**:\n  - Common formats (JPG, PNG, GIF, etc.)\n  - RAW formats (ARW, CR2, CR3, NEF, RAF, RW2, DNG)\n  - Modern formats (WEBP, AVIF, HEIC, JXL)\n  - Animation formats (GIF, WEBP, APNG)\n  - Vector formats (SVG, PDF, EPS)\n- ✨ **Automatic Image Enhancement**:\n  - Auto-level for dynamic range optimization\n  - Auto-gamma for balanced exposure correction\n  - Screen-optimized sharpening with three levels (low, standard, high)\n- 🌐 **Image Import from URL**\n- 📦 **Enhanced Batch Processing**:\n  - ZIP export with organized structure\n  - Detailed processing status for each image\n  - Error handling with specific feedback\n- 🎨 **Advanced Image Analysis**:\n  - Automatic transparency detection\n  - Photo vs. graphic type detection\n  - Format-specific optimizations\n- 💾 **Smart Format Recommendations**:\n  - Context-aware format suggestions\n  - Quality-preserving options (PNG, DNG)\n  - Format-specific optimizations\n  - Support for modern compression formats\n- 🔍 **Automatic Image Type Analysis**\n- 🔍 **Intelligent Format Recommendations**\n\n### Screenshots\n\n![Landing page](https://raw.githubusercontent.com/tiritibambix/ImaGUIck/refs/heads/main/screenshots/ImaGUIck_1.png)\n\n![Resize](https://raw.githubusercontent.com/tiritibambix/ImaGUIck/refs/heads/main/screenshots/ImaGUIck_2.png)\n\n## 🚀 Installation\n\n### Prerequisites\n\n- Python 3.9+\n- [`ImageMagick 7.1.1-41`](https://github.com/ImageMagick/ImageMagick/releases/tag/7.1.1-41) or newer\n  - Windows users: Add ImageMagick to your system's PATH during installation\n  - Linux users: Install development headers (e.g., `libmagickwand-dev`)\n- ExifTool for metadata handling\n- Docker (recommended for easier deployment)\n\n### Local Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/tiritibambix/ImaGUIck.git\n   cd ImaGUIck\n   ```\n\n2. Create required directories:\n   ```bash\n   mkdir -p uploads output\n   ```\n\n3. Install Python dependencies:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n4. Verify installations:\n   ```bash\n   # Verify ImageMagick\n   magick -version\n   \n   # Verify ExifTool\n   exiftool -ver\n   ```\n\n5. Run the application:\n   ```bash\n   python app.py\n   ```\n\n   The application will be available at `http://localhost:5000`\n\n\u003e **Note**: The local installation includes automatic cleanup of files older than 48 hours. \n\u003e To manually trigger cleanup, run:\n\u003e ```bash\n\u003e python cleanup.py --now\n\u003e ```\n\n### Docker Installation (Recommended)\n\n1. Clone the repository\n\n   ```bash\n   git clone https://github.com/tiritibambix/ImaGUIck.git\n   cd ImaGUIck\n   ```\n\n2. Build the Docker image\n\n   ```bash\n   docker build -t imaguick .\n   ```\n\n3. Run the application\n\n   ```bash\n   docker run -it --rm \\\n       -v $(pwd)/uploads:/app/uploads \\\n       -v $(pwd)/output:/app/output \\\n       -p 5000:5000 \\\n       imaguick\n   ```\n \n#### Alternatively, you can use docker-compose to run the application:\n\n```yaml\nservices:\n  imaguick:\n    stdin_open: true\n    tty: true\n    volumes:\n      - ./uploads:/app/uploads\n      - ./output:/app/output\n    ports:\n      - 5000:5000\n    image: tiritibambix/imaguick:latest\nnetworks: {}\n```\n\n## 🖥️ Usage\n\n1. Access the application via your browser: `http://localhost:5000`\n\n2. Choose your import method:\n   - Upload file(s) from your computer\n   - Import from a URL\n\n3. Configure your processing options:\n   - Output dimensions\n   - Image quality\n   - Output format\n\n4. Start processing and download your images.\n\n### Automatic Cleanup\n\n- Uploaded and processed files are automatically cleaned up after 48 hours\n- To manually trigger an immediate cleanup:\n  ```bash\n  docker exec \u003ccontainer_name\u003e /app/cleanup.sh\n  ```\n  Replace `\u003ccontainer_name\u003e` with your container name (e.g., `imaguick`)\n\n## 🛠️ Technical Architecture\n\n### Technologies Used\n\n- **Backend**: Flask (Python)\n- **Image Processing**: \n  - ImageMagick 7.1.1-41\n  - ExifTool\n  - Pillow\n- **Frontend**: HTML/CSS/JavaScript\n- **Containerization**: Docker\n\n### Project Structure\n\n```\nimaguick/\n├── Dockerfile                  # Container configuration and build instructions\n├── LICENSE                     # Project and ImageMagick licenses\n├── README.md                   # Project documentation\n├── TODO.md                     # Development roadmap and planned features\n├── app.py                      # Main application logic and routes\n├── cleanup.py                  # Automatic file cleanup script\n├── cleanup.sh                  # Shell script for manual cleanup\n├── docker-compose.yml          # Docker Compose configuration\n├── requirements.txt            # Python package dependencies\n├── start.sh                    # Container startup script\n├── templates                   # HTML templates for the web interface\n|     ├── base.html             # Base template with common styling\n|     ├── index.html            # Main upload and import page\n|     ├── resize.html           # Single image processing options\n|     ├── resize_batch.html     # Batch processing configuration\n|     ├── result.html           # Success/Error feedback display\n```\n\nThe application follows a clean and modular structure:\n- Core application files at the root level for easy deployment\n- Separate cleanup scripts for automated and manual file management\n- Containerization support with Docker and Docker Compose\n- Modular template system for the web interface\n\n## 🤝 Contribution\n\nContributions are welcome! To contribute:\n\n1. Fork the project\n2. Create a branch for your feature (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## 📝 License\n\nThis project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details. \n**ImageMagick's** license can be found [HERE](https://imagemagick.org/script/license.php).\n\n\n### Customization\n\n- Modify supported formats: See the `get_available_formats()` function in `app.py`\n- Add new processing features: Extend the `build_imagemagick_command()` function in `app.py`\n\n## 📫 Contact\n\nFor any questions or suggestions, feel free to:\n- Open an issue on GitHub\n- Submit a pull request\n- Contact the project maintainer\n\n---\n\nMade with ❤️ in Python\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiritibambix%2Fimaguick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftiritibambix%2Fimaguick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftiritibambix%2Fimaguick/lists"}