Command Line Interface
The cli
module provides command-line interfaces for GUI Image Studio functionality.
Command-line interface for gui_image_studio package.
- gui_image_studio.cli.generate_embedded_images()[source]
Console script entry point for generating embedded images.
- gui_image_studio.cli.create_sample_images()[source]
Console script entry point for creating sample images.
- gui_image_studio.cli.launch_designer()[source]
Console script entry point for launching the image studio GUI.
Overview
GUI Image Studio provides three main command-line tools:
gui-image-studio-designer
- Launch the main GUI applicationgui-image-studio-create-samples
- Generate sample images for testinggui-image-studio-generate
- Create embedded image resources
All commands support --help
and --version
options.
Main Commands
Designer Application
- gui_image_studio.cli.launch_designer()[source]
Console script entry point for launching the image studio GUI.
Launch the main GUI Image Studio application.
Usage:
gui-image-studio-designer [OPTIONS] [FILE]
Options:
--version
- Show version information--theme THEME
- Set initial theme (light/dark)--fullscreen
- Start in fullscreen mode--debug
- Enable debug mode--config FILE
- Use custom configuration file
Examples:
# Launch with default settings
gui-image-studio-designer
# Launch with specific image
gui-image-studio-designer photo.jpg
# Launch with dark theme
gui-image-studio-designer --theme dark
# Launch in fullscreen
gui-image-studio-designer --fullscreen
# Launch with debug output
gui-image-studio-designer --debug
Return Codes:
0
- Success1
- General error2
- Invalid arguments3
- File not found4
- Permission error
Sample Creator
- gui_image_studio.cli.create_sample_images()[source]
Console script entry point for creating sample images.
Generate sample images for testing and development.
Usage:
gui-image-studio-create-samples [OPTIONS]
Options:
--output-dir DIR
- Output directory (default: ./sample_images)--count N
- Number of each sample type to create (default: 1)--size WxH
- Image size (default: 256x256)--formats FORMAT
- Comma-separated list of formats (default: png,jpg,gif)--animated
- Include animated GIF samples--overwrite
- Overwrite existing files--verbose
- Verbose output
Examples:
# Create default samples
gui-image-studio-create-samples
# Create samples in specific directory
gui-image-studio-create-samples --output-dir test_images
# Create multiple samples of each type
gui-image-studio-create-samples --count 5
# Create large samples
gui-image-studio-create-samples --size 1024x1024
# Create only PNG samples
gui-image-studio-create-samples --formats png
# Include animated samples
gui-image-studio-create-samples --animated
# Verbose output with overwrite
gui-image-studio-create-samples --verbose --overwrite
Generated Samples:
sample_icon.png
- Small icon for UI testingsample_photo.jpg
- Photograph for processing testssample_gradient.png
- Gradient for filter testingsample_transparent.png
- Image with transparencysample_animation.gif
- Animated GIF (if –animated)sample_large.jpg
- Large image for performance testing
Resource Generator
- gui_image_studio.cli.generate_embedded_images()[source]
Console script entry point for generating embedded images.
Generate embedded image resources for distribution.
Usage:
gui-image-studio-generate [OPTIONS]
Options:
--folder DIR
- Input folder containing images (default: ./images)--output FILE
- Output Python file (default: embedded_images.py)--module-name NAME
- Module name for generated code--format FORMAT
- Encoding format (base64/bytes, default: base64)--compress
- Compress images before embedding--quality N
- JPEG quality for compression (1-100, default: 85)--max-size WxH
- Maximum image size (default: no limit)--exclude PATTERN
- Exclude files matching pattern--include PATTERN
- Include only files matching pattern
Examples:
# Generate from default folder
gui-image-studio-generate
# Generate from specific folder
gui-image-studio-generate --folder assets/icons
# Generate with custom output file
gui-image-studio-generate --output my_images.py
# Generate with compression
gui-image-studio-generate --compress --quality 75
# Generate with size limit
gui-image-studio-generate --max-size 512x512
# Generate excluding thumbnails
gui-image-studio-generate --exclude "*thumb*"
# Generate only PNG files
gui-image-studio-generate --include "*.png"
Generated Code Example:
# embedded_images.py (generated)
"""
Embedded images for GUI Image Studio
Generated on: 2024-06-22 10:30:00
"""
import base64
from io import BytesIO
from PIL import Image
# Image data
IMAGES = {
'sample_icon': 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQ...',
'sample_photo': '/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAA...',
}
def get_image(name: str) -> Image.Image:
"""Get embedded image by name."""
if name not in IMAGES:
raise KeyError(f"Image '{name}' not found")
data = base64.b64decode(IMAGES[name])
return Image.open(BytesIO(data))
def list_images() -> list:
"""List all available embedded images."""
return list(IMAGES.keys())
Available Functions
The CLI module provides the following functions that can be used programmatically:
- gui_image_studio.cli.generate_embedded_images()[source]
Console script entry point for generating embedded images.
Configuration
CLI Configuration File
CLI tools can use a configuration file to set default options:
- Location:
Windows:
%APPDATA%\gui-image-studio\config.ini
macOS:
~/Library/Application Support/gui-image-studio/config.ini
Linux:
~/.config/gui-image-studio/config.ini
Format:
[designer]
theme = dark
fullscreen = false
debug = false
[samples]
output_dir = ./sample_images
count = 1
size = 256x256
formats = png,jpg,gif
animated = false
[generator]
folder = ./images
output = embedded_images.py
format = base64
compress = false
quality = 85
Environment Variables:
CLI tools also respect environment variables:
export GUI_IMAGE_STUDIO_THEME=dark
export GUI_IMAGE_STUDIO_DEBUG=1
export GUI_IMAGE_STUDIO_CONFIG=/path/to/config.ini
Advanced Usage
Scripting with CLI Tools
Batch Sample Creation:
#!/bin/bash
# Create samples for different test scenarios
# Small samples for unit tests
gui-image-studio-create-samples --output-dir tests/fixtures --size 32x32 --count 3
# Medium samples for integration tests
gui-image-studio-create-samples --output-dir tests/integration --size 256x256 --animated
# Large samples for performance tests
gui-image-studio-create-samples --output-dir tests/performance --size 2048x2048
Automated Resource Generation:
#!/bin/bash
# Build script for embedding resources
# Compress and embed icons
gui-image-studio-generate --folder assets/icons --output src/icons.py --compress --max-size 64x64
# Embed sample images
gui-image-studio-generate --folder sample_images --output src/samples.py --quality 75
CI/CD Integration:
# GitHub Actions example
- name: Generate embedded resources
run: |
gui-image-studio-create-samples --output-dir test_data
gui-image-studio-generate --folder assets --output src/embedded.py
PowerShell Scripting (Windows):
# PowerShell script for Windows
$ErrorActionPreference = "Stop"
# Create test samples
gui-image-studio-create-samples --output-dir "test_images" --verbose
# Generate resources
gui-image-studio-generate --folder "assets" --output "embedded.py" --compress
Write-Host "Resource generation complete"
Error Handling
Exit Codes:
All CLI tools use standard exit codes:
0
- Success1
- General error2
- Invalid command line arguments3
- File or directory not found4
- Permission denied5
- Insufficient disk space6
- Unsupported image format7
- Memory error
Error Messages:
CLI tools provide clear error messages:
$ gui-image-studio-designer nonexistent.jpg
Error: File 'nonexistent.jpg' not found
Exit code: 3
$ gui-image-studio-create-samples --size invalid
Error: Invalid size format 'invalid'. Use format: WIDTHxHEIGHT
Exit code: 2
Logging:
Enable detailed logging for troubleshooting:
# Enable verbose output
gui-image-studio-designer --debug --verbose
# Redirect output to file
gui-image-studio-create-samples --verbose > creation.log 2>&1
Integration Examples
Makefile Integration:
# Makefile for project build
.PHONY: samples resources clean
samples:
gui-image-studio-create-samples --output-dir test_data
resources:
gui-image-studio-generate --folder assets --output src/embedded.py --compress
clean:
rm -rf test_data src/embedded.py
Python Script Integration:
import subprocess
import sys
def generate_resources():
"""Generate embedded resources using CLI."""
try:
result = subprocess.run([
'gui-image-studio-generate',
'--folder', 'assets',
'--output', 'src/embedded.py',
'--compress'
], check=True, capture_output=True, text=True)
print("Resources generated successfully")
return True
except subprocess.CalledProcessError as e:
print(f"Error generating resources: {e.stderr}")
return False
if __name__ == "__main__":
if not generate_resources():
sys.exit(1)
Docker Integration:
FROM python:3.9-slim
# Install GUI Image Studio
RUN pip install gui-image-studio
# Copy assets
COPY assets/ /app/assets/
# Generate embedded resources
WORKDIR /app
RUN gui-image-studio-generate --folder assets --output embedded.py
# Your application code
COPY . /app/
CMD ["python", "app.py"]
Performance Considerations
Large Image Handling:
# For large images, use compression and size limits
gui-image-studio-generate --folder large_images --compress --max-size 1024x1024 --quality 70
Memory Usage:
# Monitor memory usage during generation
/usr/bin/time -v gui-image-studio-generate --folder assets
Parallel Processing:
# Process multiple folders in parallel
gui-image-studio-generate --folder icons &
gui-image-studio-generate --folder photos &
wait
Troubleshooting
Common Issues:
Command not found:
# Ensure GUI Image Studio is installed pip install gui-image-studio # Check installation pip show gui-image-studio
Permission errors:
# Use --output-dir with write permissions gui-image-studio-create-samples --output-dir ~/test_images
Memory errors with large images:
# Use size limits and compression gui-image-studio-generate --max-size 512x512 --compress
Display issues (Linux):
# Set display for headless systems export DISPLAY=:0 gui-image-studio-designer
Debug Mode:
Enable debug mode for detailed troubleshooting:
gui-image-studio-designer --debug
# Shows detailed error messages and stack traces