DPI Upscaler & Checker#
Check if images meet 300 DPI printing standards, and intelligently restore blurry low-resolution images using AI super-resolution technology.
Features#
- DPI Detection: Read and verify image DPI information
- Intelligent Analysis: Calculate actual print size and pixel density
- Super-Resolution Restoration: Use Real-ESRGAN algorithm to enhance image clarity
- Batch Processing: Support single image and batch folder processing
- Format Support: JPG, PNG, TIFF, BMP, WebP
Use Cases#
- Academic paper figure DPI checking
- Print image quality pre-inspection
- Low-resolution material restoration
- Document scan enhancement
Usage#
Check Single Image DPI#
bash
python scripts/main.py check --input image.jpg
Batch Check Folder#
bash
python scripts/main.py check --input ./images/ --output report.json
Super-Resolution Restoration#
bash
python scripts/main.py upscale --input image.jpg --output upscaled.jpg --scale 4
Batch Fix Low DPI Images#
bash
python scripts/main.py upscale --input ./images/ --output ./output/ --min-dpi 300 --scale 2
Parameters#
Check Command#
ParameterTypeDefaultRequiredDescription--inputstring-YesInput image path or folder--outputstringstdoutNoOutput report path--target-dpiint300NoTarget DPI threshold
Upscale Command#
ParameterTypeDefaultRequiredDescription--inputstring-YesInput image path or folder--outputstring-YesOutput path--scaleint2NoScale factor (2/3/4)--min-dpiint-NoOnly process images below this DPI--denoiseint0NoDenoise level (0-3)--face-enhanceflagfalseNoEnable face enhancement
Output Description#
DPI Check Report#
json
{
"file": "image.jpg",
"dpi": [72, 72],
"width_px": 1920,
"height_px": 1080,
"print_width_cm": 67.7,
"print_height_cm": 38.1,
"meets_300dpi": false,
"recommended_scale": 4.17
}
Restored Image#
- Automatically saved as
<original_filename>_upscaled.<extension>
- Preserves original EXIF information
- Sets DPI to 300
Dependencies#
- Python >= 3.8
- Pillow >= 9.0.0
- opencv-python >= 4.5.0
- numpy >= 1.21.0
- realesrgan (optional, for best results)
Algorithm Description#
DPI Calculation#
text
Actual DPI = Pixel dimensions / Physical dimensions
Print size (cm) = Pixel count / DPI * 2.54
Super-Resolution#
- Default use of Real-ESRGAN model
- Support lightweight bicubic interpolation fallback
- Intelligent model selection (general/anime/face)
Notes#
- Input image DPI information may be inaccurate; actual pixel calculation shall prevail
- Super-resolution cannot create non-existent information; extremely blurry images have limited improvement
- Large file processing requires more memory
- GPU acceleration requires CUDA environment (optional)
Risk Assessment#
Risk IndicatorAssessmentLevelCode ExecutionPython/R scripts executed locallyMediumNetwork AccessNo external API callsLowFile System AccessRead input files, write output filesMediumInstruction TamperingStandard prompt guidelinesLowData ExposureOutput files saved to workspaceLow
Security Checklist#
- No hardcoded credentials or API keys
- No unauthorized file system access (../)
- Output does not expose sensitive information
- Prompt injection protections in place
- Input file paths validated (no ../ traversal)
- Output directory restricted to workspace
- Script execution in sandboxed environment
- Error messages sanitized (no stack traces exposed)
- Dependencies audited
Prerequisites#
bash
# Python dependencies
pip install -r requirements.txt
Evaluation Criteria#
Success Metrics#
- Successfully executes main functionality
- Output meets quality standards
- Handles edge cases gracefully
- Performance is acceptable
Test Cases#
- Basic Functionality: Standard input → Expected output
- Edge Case: Invalid input → Graceful error handling
- Performance: Large dataset → Acceptable processing time
Lifecycle Status#
-
Current Stage: Draft
-
Next Review Date: 2026-03-06
-
Known Issues: None
-
Planned Improvements:
- Performance optimization
- Additional feature support