diff --git a/src/PhpPresentation/Style/Color.php b/src/PhpPresentation/Style/Color.php index d962fee08..c8c53706a 100644 --- a/src/PhpPresentation/Style/Color.php +++ b/src/PhpPresentation/Style/Color.php @@ -87,6 +87,21 @@ public function setARGB($pValue = self::COLOR_BLACK) return $this; } + /** + * Get the alpha % of the ARGB + * Will return 100 if no ARGB + * @return integer + */ + public function getAlpha() + { + $alpha = 100; + if (strlen($this->argb) >= 6) { + $dec = hexdec(substr($this->argb, 0, 2)); + $alpha = number_format(( $dec/255 ) * 100, 2); + } + return $alpha; + } + /** * Get RGB * diff --git a/src/PhpPresentation/Writer/PowerPoint2007/AbstractDecoratorWriter.php b/src/PhpPresentation/Writer/PowerPoint2007/AbstractDecoratorWriter.php index d8a126442..b0d3a6ae1 100644 --- a/src/PhpPresentation/Writer/PowerPoint2007/AbstractDecoratorWriter.php +++ b/src/PhpPresentation/Writer/PowerPoint2007/AbstractDecoratorWriter.php @@ -155,6 +155,12 @@ protected function writeSolidFill(XMLWriter $objWriter, Fill $pFill) // srgbClr $objWriter->startElement('a:srgbClr'); $objWriter->writeAttribute('val', $pFill->getStartColor()->getRGB()); + + // a:alpha + $objWriter->startElement('a:alpha'); + $objWriter->writeAttribute('val', $pFill->getStartColor()->getAlpha() * 1000); + $objWriter->endElement(); + $objWriter->endElement(); $objWriter->endElement(); @@ -181,6 +187,12 @@ protected function writeGradientFill(XMLWriter $objWriter, Fill $pFill) // srgbClr $objWriter->startElement('a:srgbClr'); $objWriter->writeAttribute('val', $pFill->getStartColor()->getRGB()); + + // a:alpha + $objWriter->startElement('a:alpha'); + $objWriter->writeAttribute('val', $pFill->getStartColor()->getAlpha() * 1000); + $objWriter->endElement(); + $objWriter->endElement(); $objWriter->endElement(); @@ -192,6 +204,12 @@ protected function writeGradientFill(XMLWriter $objWriter, Fill $pFill) // srgbClr $objWriter->startElement('a:srgbClr'); $objWriter->writeAttribute('val', $pFill->getEndColor()->getRGB()); + + // a:alpha + $objWriter->startElement('a:alpha'); + $objWriter->writeAttribute('val', $pFill->getEndColor()->getAlpha() * 1000); + $objWriter->endElement(); + $objWriter->endElement(); $objWriter->endElement(); @@ -225,6 +243,12 @@ protected function writePatternFill(XMLWriter $objWriter, Fill $pFill) // srgbClr $objWriter->startElement('a:srgbClr'); $objWriter->writeAttribute('val', $pFill->getStartColor()->getRGB()); + + // a:alpha + $objWriter->startElement('a:alpha'); + $objWriter->writeAttribute('val', $pFill->getStartColor()->getAlpha() * 1000); + $objWriter->endElement(); + $objWriter->endElement(); $objWriter->endElement(); @@ -235,6 +259,12 @@ protected function writePatternFill(XMLWriter $objWriter, Fill $pFill) // srgbClr $objWriter->startElement('a:srgbClr'); $objWriter->writeAttribute('val', $pFill->getEndColor()->getRGB()); + + // a:alpha + $objWriter->startElement('a:alpha'); + $objWriter->writeAttribute('val', $pFill->getEndColor()->getAlpha() * 1000); + $objWriter->endElement(); + $objWriter->endElement(); $objWriter->endElement();