fix: boxShadow opacity 从 rgba alpha 提取,不再硬编码 0.5

This commit is contained in:
李进
2026-07-27 17:33:10 +08:00
parent d4e492351b
commit c9924d0737
2 changed files with 8 additions and 4 deletions
+4 -2
View File
@@ -479,8 +479,10 @@ async function convertToPptx(input, onProgress) {
if (n.styles.boxShadow && n.styles.boxShadow !== 'none') {
var shadowMatch = n.styles.boxShadow.match(/rgba?\(([^)]+)\)\s+(\d+)px\s+(\d+)px\s+(\d+)px/);
if (shadowMatch) {
var shadowColor = rgbaToHex('rgb(' + shadowMatch[1] + ')') || '999999';
shapeOpts.shadow = { type: 'outer', blur: parseInt(shadowMatch[4]), offset: parseInt(shadowMatch[3]), color: shadowColor, opacity: 0.5 };
var shadowParts = shadowMatch[1].split(',').map(function(s) { return s.trim(); });
var shadowColor = rgbaToHex('rgb(' + shadowParts.slice(0,3).join(',') + ')') || '999999';
var shadowAlpha = shadowParts.length > 3 ? parseFloat(shadowParts[3]) : 0.3;
shapeOpts.shadow = { type: 'outer', blur: parseInt(shadowMatch[4]), offset: parseInt(shadowMatch[3]), color: shadowColor, opacity: Math.round(shadowAlpha * 100) / 100 };
}
}