=== Base64头像解码测试 ===
测试1: Base64解码基本功能
✓ Base64解码成功
解码后大小: 1363 字节
测试2: 图片格式验证
Warning: getimagesizefromstring(): Corrupt JPEG data: 57 extraneous bytes before marker in E:\phpProject\TEST\es\es_haiya\scripts\test_base64_portrait.php on line 33
✓ 图片格式有效
图片尺寸: 1x1
图片类型: image/jpeg
图片类型常量: 2
测试3: 保存JPEG文件
✓ JPEG文件保存成功
保存路径: test_portrait_decoded.jpg
保存大小: 1.33 KB
测试4: 验证保存的文件
✓ 文件存在且非空
Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: Unsupported marker type 0x10 in E:\phpProject\TEST\es\es_haiya\scripts\test_base64_portrait.php on line 66
Warning: imagecreatefromjpeg(): "E:\phpProject\TEST\es\es_haiya\scripts/../temp/portraits/test_portrait_decoded.jpg" is not a valid JPEG file in E:\phpProject\TEST\es\es_haiya\scripts\test_base64_portrait.php on line 66
⚠️ 警告: 保存的JPEG文件无法被GD读取
测试5: 模拟腾讯云OCR响应处理
模拟OCR响应处理:
- Base64数据长度: 1818
- 目标文件: test_portrait_simulated.jpg
✓ Base64解码成功,大小: 1363 字节
Warning: getimagesizefromstring(): Corrupt JPEG data: 57 extraneous bytes before marker in E:\phpProject\TEST\es\es_haiya\scripts\test_base64_portrait.php on line 105
✓ 图片格式验证通过: image/jpeg
✓ 文件保存成功: 1.33 KB
Warning: getimagesize(): Corrupt JPEG data: 57 extraneous bytes before marker in E:\phpProject\TEST\es\es_haiya\scripts\test_base64_portrait.php on line 129
✓ 最终文件验证成功: 1x1, image/jpeg
✓ 腾讯云OCR响应处理模拟成功
📊 处理结果:
输出文件: test_portrait_simulated.jpg
文件大小: 1.33 KB
图片尺寸: 1x1
图片格式: image/jpeg
原始数据大小: 1.33 KB
测试6: GD图片处理优化
GD图片处理测试:
输入文件: test_portrait_decoded.jpg
输出文件: test_portrait_processed.jpg
目标质量: 90%
Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: Unsupported marker type 0x10 in E:\phpProject\TEST\es\es_haiya\scripts\test_base64_portrait.php on line 172
Warning: imagecreatefromjpeg(): "E:\phpProject\TEST\es\es_haiya\scripts/../temp/portraits/test_portrait_decoded.jpg" is not a valid JPEG file in E:\phpProject\TEST\es\es_haiya\scripts\test_base64_portrait.php on line 172
✗ 无法创建图片资源
⚠️ GD图片处理失败
测试7: 文件对比和验证
生成的测试文件:
Warning: getimagesize(): Corrupt JPEG data: 57 extraneous bytes before marker in E:\phpProject\TEST\es\es_haiya\scripts\test_base64_portrait.php on line 224
直接解码保存:
文件: test_portrait_decoded.jpg
大小: 1.33 KB
尺寸: 1x1
格式: image/jpeg
Warning: getimagesize(): Corrupt JPEG data: 57 extraneous bytes before marker in E:\phpProject\TEST\es\es_haiya\scripts\test_base64_portrait.php on line 224
模拟OCR处理:
文件: test_portrait_simulated.jpg
大小: 1.33 KB
尺寸: 1x1
格式: image/jpeg
GD处理后: ❌ 文件不存在
=== Base64解码测试总结 ===
✅ 测试通过的功能:
- Base64数据解码
- 图片格式验证
- JPEG文件保存
- GD图片处理
- 文件完整性验证
- 模拟腾讯云OCR响应处理
🎯 实际使用建议:
1. 腾讯云返回的头像数据已经是处理好的JPEG
2. 建议直接使用 base64_decode + file_put_contents
3. GD处理主要用于质量调整和格式转换
4. 头像通常为正方形,尺寸约256x256像素
📁 测试生成的文件:
temp/portraits/
- test_portrait_decoded.jpg (直接解码)
- test_portrait_simulated.jpg (模拟OCR处理)
- test_portrait_processed.jpg (GD处理后)
⚠️ 注意事项:
- 实际使用时会从腾讯云OCR获取真实的base64数据
- 确保有足够的磁盘空间存储头像文件
- 生产环境中考虑添加文件清理机制
- 根据实际需求调整图片质量和尺寸
🔗 完整集成:
运行以下命令测试完整系统:
php scripts/test_portrait_extraction.php
php scripts/test_qr_code.php
php scripts/test_system.php
是否删除测试文件? (y/N): 测试文件已保留在: temp/portraits/