Test image 1920×1080. 53 attack tests, 52 passed, pass rate 98.1%.
| # | Attack | Param | Preview | Result |
|---|---|---|---|---|
| 1 | Original | 1920×1080 | ![]() | ✅ |
| 2 | Rotate 3° | 1920×1080 | ![]() | ✅ |
| 3 | Rotate 15° | 1920×1080 | ![]() | ✅ |
| 4 | Rotate 75° | 1920×1080 | ![]() | ✅ |
| 5 | Rotate 175° | 1920×1080 | ![]() | ✅ |
| 6 | Rotate 275° | 1920×1080 | ![]() | ✅ |
| 7 | Downscale 20% | 384×216 | ❌ | |
| 8 | Downscale 35% | 672×378 | ✅ | |
| 9 | Downscale 50% | 960×540 | ![]() | ✅ |
| 10 | Downscale 75% | 1440×810 | ![]() | ✅ |
| 11 | Upscale 125% | 2400×1350 | ![]() | ✅ |
| 12 | Upscale 150% | 2880×1620 | ![]() | ✅ |
| 13 | Upscale 200% | 3840×2160 | ![]() | ✅ |
| 14 | Upscale 300% | 5760×3240 | ![]() | ✅ |
| 15 | Upscale 500% | 9600×5400 | ![]() | ✅ |
| 16 | Affine Shear 0.3 | 2496×1080 | ![]() | ✅ |
| 17 | Affine Shear 0.6 | 3072×1080 | ![]() | ✅ |
| 18 | Affine Shear 1.2 | 4224×1080 | ![]() | ✅ |
| 19 | Affine Shear 1.8 | 5376×1080 | ![]() | ✅ |
| 20 | Affine 0.5×2.0 | 960×2160 | ![]() | ✅ |
| 21 | Non-uniform 1.5×0.5 | 2880×540 | ![]() | ✅ |
| 22 | Non-uniform 0.5×1.5 | 960×1620 | ![]() | ✅ |
| 23 | Non-uniform 0.6×1.8 | 1152×1944 | ![]() | ✅ |
| 24 | Non-uniform 0.7×1.4 | 1344×1512 | ![]() | ✅ |
| 25 | Non-uniform 0.8×1.2 | 1536×1296 | ![]() | ✅ |
| 26 | Non-uniform 1.2×0.8 | 2304×864 | ![]() | ✅ |
| 27 | Perspective 5% | 1920×1080 | ![]() | ✅ |
| 28 | Perspective 7% | 1920×1080 | ![]() | ✅ |
| 29 | Perspective 9% | 1920×1080 | ![]() | ✅ |
| 30 | Perspective 11% | 1920×1080 | ![]() | ✅ |
| 31 | Perspective 13% | 1920×1080 | ![]() | ✅ |
| 32 | Gaussian Blur 3×3 | 1920×1080 | ![]() | ✅ |
| 33 | Gaussian Blur 7×7 | 1920×1080 | ![]() | ✅ |
| 34 | Gaussian Blur 9×9 | 1920×1080 | ![]() | ✅ |
| 35 | Gaussian Blur 10×10 | 1920×1080 | ![]() | ✅ |
| 36 | Gaussian Blur 11×11 | 1920×1080 | ![]() | ✅ |
| 37 | JPEG Q=50 | 1920×1080 | ![]() | ✅ |
| 38 | JPEG Q=40 | 1920×1080 | ![]() | ✅ |
| 39 | JPEG Q=30 | 1920×1080 | ![]() | ✅ |
| 40 | Crop 80% | 1536×864 | ![]() | ✅ |
| 41 | Crop 60% | 1152×648 | ![]() | ✅ |
| 42 | Mirror H | 1920×1080 | ![]() | ✅ |
| 43 | Mirror V | 1920×1080 | ![]() | ✅ |
| 44 | Mirror H+V | 1920×1080 | ![]() | ✅ |
| 45 | Combo Rotate+Crop | 1536×864 | ![]() | ✅ |
| 46 | Combo Rotate+NonUni | 1344×1512 | ![]() | ✅ |
| 47 | Combo Rotate+JPEG50 | 1920×1080 | ![]() | ✅ |
| 48 | Combo Crop+JPEG50 | 1536×864 | ![]() | ✅ |
| 49 | Combo Shear+JPEG50 | 2496×1080 | ![]() | ✅ |
| 50 | Combo Persp+JPEG50 | 1920×1080 | ![]() | ✅ |
| 51 | Combo Persp+Blur | 1920×1080 | ![]() | ✅ |
| 52 | Combo Blur+JPEG50 | 1920×1080 | ![]() | ✅ |
| 53 | Combo Mirror+JPEG50 | 1920×1080 | ![]() | ✅ |
Conclusion:wmgg blind watermark passes 52/53 attack tests. Only extreme downscale to 20% (384×216) fails due to information loss. All other attacks — rotation, JPEG, scaling, blur, perspective, crop, mirror, affine, and combinations — pass reliably. Recommend keeping image width ≥ 640px for worry-free extraction.
Test date: 2026-05-31 | Source: 1920×1080 | Raw data: tools/robust_data/attack_20260531_160220.log