Summary
This is a follow-up to Theme-aware SVG Picture on a Slide Renders Static Fallback Fill Instead of the Resolved Theme Color, which you fixed in 26.6.0. That fix resolved the two configurations in that report, but a closely related case still renders incorrectly in Aspose.Slides for .NET 26.6.0.
A theme-aware SVG picture (class MsftOfcThm_Text1_Fill_v2, static fallback fill #FFFFFF) resolves to the wrong theme color when the same image part is displayed on two slides whose color maps differ:
- Slide 1 uses a slide layout whose color map is an
<a:overrideClrMapping>mappingtx1 → lt1, so on that slidetx1resolves to white (correct). - Slide 2 uses the normal
<a:masterClrMapping>, sotx1resolves todk1 = #000000= black.
Aspose appears to resolve/cache the SVG’s color once for the shared image part and reuse slide 1’s white on slide 2. On slide 2 the rectangle renders white instead of black, while ordinary text on the same slide that also uses tx1 renders black correctly.
Environment
- Aspose.Slides for .NET 26.6.0
- .NET 10, Windows
Reproduction
SharedThemeAwareSvg.pptx (attached) — two slides, one theme:
Structure
- One slide master,
clrMapwithtx1="dk1"; themedk1 = #000000,lt1 = #FFFFFF. - Two layouts under that master:
- Inherit layout —
<a:masterClrMapping/>, sotx1 → dk1 → black. - Override layout —
<a:overrideClrMapping ... tx1="lt1" .../>, sotx1 → lt1 → white.
- Inherit layout —
- One theme-aware SVG image part (
MsftOfcThm_Text1_Fill_v2, fallback fill#FFFFFF), shown as a picture on both slides via the same image relationship target. - Slide 1 uses the Override layout; Slide 2 uses the Inherit layout.
Trigger
- The same SVG image part appearing on the override-mapped slide is what makes slide 2’s copy resolve to white. Removing slide 1 (or pointing it at the Inherit layout) makes slide 2 render correctly.
- The defect is resolution-dependent: it only appears once the SVG is rasterized above a certain pixel size. The repro renders at 1600 px wide.
Expected result
On slide 2, the SVG rectangle should resolve tx1 → dk1 and render black — as PowerPoint does, and as the header/footer text on the same slide (which also uses tx1) does.
Actual result (Aspose.Slides for .NET 26.6.0)
On slide 2, the SVG rectangle renders white (the static fallback fill), invisible inside the red frame.
| Slide | PowerPoint (ground truth) | Aspose 26.6.0 |
|---|---|---|
| 1 (override layout) | rectangle white | rectangle white — agrees |
| 2 (inherit layout) | rectangle black | rectangle white ← bug |
Slide 1 renders identically in both engines, confirming the file itself is correct; only Aspose’s resolution on slide 2 is wrong. Compare Aspose_slide2.png (white) against PowerPoint_slide2.png (black).
Reproducing
dotnet run Reproduce.cs # Aspose -> Aspose_slide1.png, Aspose_slide2.png
pwsh -File ExportWithPowerPoint.ps1 # PowerPoint -> PowerPoint_slide1.png, PowerPoint_slide2.png
Notes
- This produces the same symptom as the earlier report (a theme-aware SVG using its static fallback fill instead of the resolved theme color), but in a configuration the 26.6.0 fix did not cover: the color leaking across slides through a shared SVG image part when one slide uses an
overrideClrMapping. bwModeon the picture is not relevant to the defect.
Attachment
AsposeBugReport3.zip (128.2 KB)
SharedThemeAwareSvg.pptx, Reproduce.cs, ExportWithPowerPoint.ps1, and the rendered comparison PNGs (Aspose_slide1/2.png, PowerPoint_slide1/2.png).