PLOS ONE Figure Quality Checker

Validate your TIFF images against PLOS ONE submission requirements

📈
Resolution
300-600 DPI
📐
Width
789-2250 px
💾
Max Size
10 MB
🌐
Browser Upload Recommended
Upload and instantly check 6 of 7 requirements - no installation needed
✓ File Format
✓ File Size
✓ Width
✓ Height
✓ DPI
✓ Color Mode
⚠ Manual: Compression/Layers
📂
Drop your TIFF file here or click to browse
Supports .tif and .tiff files

Analyzing your image...

🔄
Convert to TIFF
Convert JPG, PNG, or other formats to PLOS-compliant TIFF
📝 Basic Conversion (Keeps Original Size)
Windows
Linux / Mac
📏 Convert + Resize to 1800px Width (Ideal)
Windows
Linux / Mac
📦 Batch Convert Multiple Images
for f in *.{jpg,png,gif}; do convert "$f" -colorspace sRGB -density 300 -compress LZW -flatten -alpha off "${f%.*}.tiff" done
for f in *.{jpg,png,gif}; do magick "$f" -colorspace sRGB -density 300 -compress LZW -flatten -alpha off "${f%.*}.tiff" done
Get-ChildItem *.jpg,*.png,*.gif | ForEach-Object { magick $_.Name -colorspace sRGB -density 300 -compress LZW -flatten -alpha off "$($_.BaseName).tiff" }
⚠ Windows Git Bash Users: Use magick instead of convert - Windows has a built-in convert command that conflicts with ImageMagick.
💻
Full Validation Scripts All 7 Checks
Complete scripts that check everything including compression, layers, and alpha
💡 How to use: Copy the script for your platform, save it as a file, and run it with your TIFF filename as an argument.
#!/bin/bash FILE="${1:-yourfile.tiff}" echo "=== PLOS ONE TIFF Checker ===" echo "File: $FILE" echo "" if [ ! -f "$FILE" ]; then echo "ERROR: File not found!" exit 1 fi # File size SIZE_MB=$(du -m "$FILE" | cut -f1) echo "File Size: ${SIZE_MB} MB (Required: <10 MB)" [ $SIZE_MB -lt 10 ] && echo " PASS" || echo " FAIL" echo "" # Get image info INFO=$(identify -verbose "$FILE") # Dimensions WIDTH=$(echo "$INFO" | grep "Geometry:" | head -1 | sed 's/.*Geometry: \([0-9]*\)x.*/\1/') HEIGHT=$(echo "$INFO" | grep "Geometry:" | head -1 | sed 's/.*Geometry: [0-9]*x\([0-9]*\).*/\1/') echo "Width: ${WIDTH} px (Required: 789-2250 px)" [ $WIDTH -ge 789 ] && [ $WIDTH -le 2250 ] && echo " PASS" || echo " FAIL" echo "" echo "Height: ${HEIGHT} px (Required: <=2625 px)" [ $HEIGHT -le 2625 ] && echo " PASS" || echo " FAIL" echo "" # DPI DPI=$(echo "$INFO" | grep "Resolution:" | head -1 | sed 's/.*Resolution: \([0-9]*\).*/\1/') echo "Resolution: ${DPI} DPI (Required: 300-600 DPI)" [ $DPI -ge 300 ] && [ $DPI -le 600 ] && echo " PASS" || echo " FAIL/WARNING" echo "" # Color mode COLOR=$(echo "$INFO" | grep "Colorspace:" | head -1 | awk '{print $2}') echo "Color Mode: $COLOR (Required: RGB or Grayscale)" echo "$COLOR" | grep -E "sRGB|RGB|Gray" > /dev/null && echo " PASS" || echo " WARNING" echo "" # Compression COMP=$(echo "$INFO" | grep "Compression:" | head -1 | awk '{print $2}') echo "Compression: $COMP (Recommended: LZW)" [ "$COMP" = "LZW" ] && echo " PASS" || echo " WARNING" echo "" # Layers LAYERS=$(identify "$FILE" | wc -l) echo "Layers: $LAYERS (Required: 1)" [ $LAYERS -eq 1 ] && echo " PASS" || echo " FAIL" echo "" # Alpha echo "$INFO" | grep "Alpha" > /dev/null if [ $? -eq 0 ]; then echo "Alpha Channel: Yes (Required: No)" echo " WARNING" else echo "Alpha Channel: No" echo " PASS" fi echo "" echo "=== Check Complete ==="
Save as check.sh, run chmod +x check.sh, then ./check.sh yourfile.tiff
#!/bin/bash FILE="${1:-yourfile.tiff}" echo "=== PLOS ONE TIFF Checker ===" echo "File: $FILE" echo "" if [ ! -f "$FILE" ]; then echo "ERROR: File not found!" exit 1 fi # File size SIZE_MB=$(du -m "$FILE" | cut -f1) echo "File Size: ${SIZE_MB} MB (Required: <10 MB)" [ $SIZE_MB -lt 10 ] && echo " PASS" || echo " FAIL" echo "" # Get image info (Windows uses 'magick' prefix) INFO=$(magick identify -verbose "$FILE") # Dimensions WIDTH=$(echo "$INFO" | grep "Geometry:" | head -1 | sed 's/.*Geometry: \([0-9]*\)x.*/\1/') HEIGHT=$(echo "$INFO" | grep "Geometry:" | head -1 | sed 's/.*Geometry: [0-9]*x\([0-9]*\).*/\1/') echo "Width: ${WIDTH} px (Required: 789-2250 px)" [ $WIDTH -ge 789 ] && [ $WIDTH -le 2250 ] && echo " PASS" || echo " FAIL" echo "" echo "Height: ${HEIGHT} px (Required: <=2625 px)" [ $HEIGHT -le 2625 ] && echo " PASS" || echo " FAIL" echo "" # DPI DPI=$(echo "$INFO" | grep "Resolution:" | head -1 | sed 's/.*Resolution: \([0-9]*\).*/\1/') echo "Resolution: ${DPI} DPI (Required: 300-600 DPI)" [ $DPI -ge 300 ] && [ $DPI -le 600 ] && echo " PASS" || echo " FAIL/WARNING" echo "" # Color mode COLOR=$(echo "$INFO" | grep "Colorspace:" | head -1 | awk '{print $2}') echo "Color Mode: $COLOR (Required: RGB or Grayscale)" echo "$COLOR" | grep -E "sRGB|RGB|Gray" > /dev/null && echo " PASS" || echo " WARNING" echo "" # Compression COMP=$(echo "$INFO" | grep "Compression:" | head -1 | awk '{print $2}') echo "Compression: $COMP (Recommended: LZW)" [ "$COMP" = "LZW" ] && echo " PASS" || echo " WARNING" echo "" # Layers (Windows uses 'magick' prefix) LAYERS=$(magick identify "$FILE" | wc -l) echo "Layers: $LAYERS (Required: 1)" [ $LAYERS -eq 1 ] && echo " PASS" || echo " FAIL" echo "" # Alpha echo "$INFO" | grep "Alpha" > /dev/null if [ $? -eq 0 ]; then echo "Alpha Channel: Yes (Required: No)" echo " WARNING" else echo "Alpha Channel: No" echo " PASS" fi echo "" echo "=== Check Complete ==="
Save as check.sh, then run bash check.sh yourfile.tiff
param([string]$file = "yourfile.tiff") Write-Host "`n=== PLOS ONE TIFF Checker ===" -ForegroundColor Cyan Write-Host "File: $file`n" -ForegroundColor Yellow if (-not (Test-Path $file)) { Write-Host "ERROR: File not found!" -ForegroundColor Red exit 1 } $pass = 0; $fail = 0; $warn = 0 # File size $sizeMB = [math]::Round((Get-Item $file).Length / 1MB, 2) Write-Host "File Size: $sizeMB MB (Required: <10 MB)" if ($sizeMB -lt 10) { Write-Host " PASS`n" -ForegroundColor Green; $pass++ } else { Write-Host " FAIL`n" -ForegroundColor Red; $fail++ } # Get ImageMagick info try { $verbose = magick identify -verbose $file 2>&1 $scenes = @(magick identify $file 2>&1) } catch { Write-Host "ERROR: ImageMagick not installed" -ForegroundColor Red exit 1 } $props = @{ Width = if ($verbose -match 'Geometry: (\d+)x(\d+)') { [int]$matches[1] } else { 0 } Height = if ($verbose -match 'Geometry: (\d+)x(\d+)') { [int]$matches[2] } else { 0 } DPI = if ($verbose -match 'Resolution: (\d+)x\d+') { [int]$matches[1] } else { 0 } Color = if ($verbose -match 'Colorspace: (\w+)') { $matches[1] } else { "Unknown" } Compression = if ($verbose -match 'Compression: (\w+)') { $matches[1] } else { "None" } Layers = $scenes.Count HasAlpha = $verbose -match 'Alpha' } Write-Host "Width: $($props.Width) px (Required: 789-2250 px)" if ($props.Width -ge 789 -and $props.Width -le 2250) { Write-Host " PASS`n" -ForegroundColor Green; $pass++ } else { Write-Host " FAIL`n" -ForegroundColor Red; $fail++ } Write-Host "Height: $($props.Height) px (Required: <=2625 px)" if ($props.Height -le 2625) { Write-Host " PASS`n" -ForegroundColor Green; $pass++ } else { Write-Host " FAIL`n" -ForegroundColor Red; $fail++ } Write-Host "Resolution: $($props.DPI) DPI (Required: 300-600 DPI)" if ($props.DPI -ge 300 -and $props.DPI -le 600) { Write-Host " PASS`n" -ForegroundColor Green; $pass++ } else { Write-Host " FAIL/WARNING`n" -ForegroundColor Yellow; $warn++ } Write-Host "Color Mode: $($props.Color) (Required: RGB or Grayscale)" if ($props.Color -match 'sRGB|RGB|Gray') { Write-Host " PASS`n" -ForegroundColor Green; $pass++ } else { Write-Host " WARNING`n" -ForegroundColor Yellow; $warn++ } Write-Host "Compression: $($props.Compression) (Recommended: LZW)" if ($props.Compression -eq 'LZW') { Write-Host " PASS`n" -ForegroundColor Green; $pass++ } else { Write-Host " WARNING`n" -ForegroundColor Yellow; $warn++ } Write-Host "Layers: $($props.Layers) (Required: 1)" if ($props.Layers -eq 1) { Write-Host " PASS`n" -ForegroundColor Green; $pass++ } else { Write-Host " FAIL`n" -ForegroundColor Red; $fail++ } Write-Host "Alpha: $(if ($props.HasAlpha) {'Yes (Required: No)'} else {'No'})" if (-not $props.HasAlpha) { Write-Host " PASS`n" -ForegroundColor Green; $pass++ } else { Write-Host " WARNING`n" -ForegroundColor Yellow; $warn++ } Write-Host "=== Summary ===" -ForegroundColor Cyan Write-Host "Passed: $pass Failed: $fail Warnings: $warn" if ($fail -eq 0) { Write-Host "`nREADY FOR SUBMISSION!" -ForegroundColor Green } else { Write-Host "`nFIX REQUIRED" -ForegroundColor Red }
Save as check.ps1, then run .\check.ps1 -file yourfile.tiff
🔧
Quick Fix Commands
Individual commands to check properties or fix common issues
🔍 Check Properties
View All Properties
Windows
Linux / Mac
Check Layers (should return 1)
Windows PowerShell
Linux / Mac
🛠 Fix Commands
Add LZW Compression
All Platforms
Full Fix (LZW + 300 DPI + Flatten)
Resize Image
Resize Width to 1500px
Resize to 85% (Reduce Size)