// Validate or set background color argument.
if (!
empty($arguments['background'
])) { // Validate the background color: Color::hexToRgb does so for us.
$background = Color::
hexToRgb($arguments['background'
]) +
['alpha' => 0
];
} else { // Background color is not specified: use transparent white as background.
$background =
['red' => 255, 'green' => 255, 'blue' => 255, 'alpha' => 127
];
} // Store the color index for the background as that is what GD uses.
$arguments['background_idx'
] =
imagecolorallocatealpha($this->
getToolkit()->
getResource(),
$background['red'
],
$background['green'
],
$background['blue'
],
$background['alpha'
]);
if ($this->
getToolkit()->
getType() === IMAGETYPE_GIF
) { // GIF does not work with a transparency channel, but can define 1 color
// in its palette to act as transparent.
// Get the current transparent color, if any.
$gif_transparent_id =
imagecolortransparent($this->
getToolkit()->
getResource());
if ($gif_transparent_id !== -1
) { // The gif already has a transparent color set: remember it to set it on
// the rotated image as well.
$arguments['gif_transparent_color'
] =
imagecolorsforindex($this->
getToolkit()->
getResource(),
$gif_transparent_id);