Skip to content

Commit bd86d7c

Browse files
committed
Merge pull request #203 from pallant/fill-alpha-channel-dev
Implement alpha channel to Fills
2 parents f5141e0 + 7a84e3b commit bd86d7c

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

src/PhpPresentation/Style/Color.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,21 @@ public function setARGB($pValue = self::COLOR_BLACK)
8787
return $this;
8888
}
8989

90+
/**
91+
* Get the alpha % of the ARGB
92+
* Will return 100 if no ARGB
93+
* @return integer
94+
*/
95+
public function getAlpha()
96+
{
97+
$alpha = 100;
98+
if (strlen($this->argb) >= 6) {
99+
$dec = hexdec(substr($this->argb, 0, 2));
100+
$alpha = number_format(( $dec/255 ) * 100, 2);
101+
}
102+
return $alpha;
103+
}
104+
90105
/**
91106
* Get RGB
92107
*

src/PhpPresentation/Writer/PowerPoint2007/AbstractDecoratorWriter.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,12 @@ protected function writeSolidFill(XMLWriter $objWriter, Fill $pFill)
155155
// srgbClr
156156
$objWriter->startElement('a:srgbClr');
157157
$objWriter->writeAttribute('val', $pFill->getStartColor()->getRGB());
158+
159+
// a:alpha
160+
$objWriter->startElement('a:alpha');
161+
$objWriter->writeAttribute('val', $pFill->getStartColor()->getAlpha() * 1000);
162+
$objWriter->endElement();
163+
158164
$objWriter->endElement();
159165

160166
$objWriter->endElement();
@@ -181,6 +187,12 @@ protected function writeGradientFill(XMLWriter $objWriter, Fill $pFill)
181187
// srgbClr
182188
$objWriter->startElement('a:srgbClr');
183189
$objWriter->writeAttribute('val', $pFill->getStartColor()->getRGB());
190+
191+
// a:alpha
192+
$objWriter->startElement('a:alpha');
193+
$objWriter->writeAttribute('val', $pFill->getStartColor()->getAlpha() * 1000);
194+
$objWriter->endElement();
195+
184196
$objWriter->endElement();
185197

186198
$objWriter->endElement();
@@ -192,6 +204,12 @@ protected function writeGradientFill(XMLWriter $objWriter, Fill $pFill)
192204
// srgbClr
193205
$objWriter->startElement('a:srgbClr');
194206
$objWriter->writeAttribute('val', $pFill->getEndColor()->getRGB());
207+
208+
// a:alpha
209+
$objWriter->startElement('a:alpha');
210+
$objWriter->writeAttribute('val', $pFill->getEndColor()->getAlpha() * 1000);
211+
$objWriter->endElement();
212+
195213
$objWriter->endElement();
196214

197215
$objWriter->endElement();
@@ -225,6 +243,12 @@ protected function writePatternFill(XMLWriter $objWriter, Fill $pFill)
225243
// srgbClr
226244
$objWriter->startElement('a:srgbClr');
227245
$objWriter->writeAttribute('val', $pFill->getStartColor()->getRGB());
246+
247+
// a:alpha
248+
$objWriter->startElement('a:alpha');
249+
$objWriter->writeAttribute('val', $pFill->getStartColor()->getAlpha() * 1000);
250+
$objWriter->endElement();
251+
228252
$objWriter->endElement();
229253

230254
$objWriter->endElement();
@@ -235,6 +259,12 @@ protected function writePatternFill(XMLWriter $objWriter, Fill $pFill)
235259
// srgbClr
236260
$objWriter->startElement('a:srgbClr');
237261
$objWriter->writeAttribute('val', $pFill->getEndColor()->getRGB());
262+
263+
// a:alpha
264+
$objWriter->startElement('a:alpha');
265+
$objWriter->writeAttribute('val', $pFill->getEndColor()->getAlpha() * 1000);
266+
$objWriter->endElement();
267+
238268
$objWriter->endElement();
239269

240270
$objWriter->endElement();

0 commit comments

Comments
 (0)