|
|
|
@ -111,10 +111,10 @@ abstract class Avatar implements IAvatar {
|
|
|
|
|
* @return string
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
protected function getAvatarVector(int $size, bool $dark): string {
|
|
|
|
|
protected function getAvatarVector(int $size, bool $darkTheme): string {
|
|
|
|
|
$userDisplayName = $this->getDisplayName();
|
|
|
|
|
$fgRGB = $this->avatarBackgroundColor($userDisplayName);
|
|
|
|
|
$bgRGB = $fgRGB->alphaBlending(0.1, $dark ? new Color(0, 0, 0) : new Color(255, 255, 255));
|
|
|
|
|
$bgRGB = $fgRGB->alphaBlending(0.1, $darkTheme ? new Color(0, 0, 0) : new Color(255, 255, 255));
|
|
|
|
|
$fill = sprintf("%02x%02x%02x", $bgRGB->red(), $bgRGB->green(), $bgRGB->blue());
|
|
|
|
|
$fgFill = sprintf("%02x%02x%02x", $fgRGB->red(), $fgRGB->green(), $fgRGB->blue());
|
|
|
|
|
$text = $this->getAvatarText();
|
|
|
|
@ -125,13 +125,13 @@ abstract class Avatar implements IAvatar {
|
|
|
|
|
/**
|
|
|
|
|
* Generate png avatar from svg with Imagick
|
|
|
|
|
*/
|
|
|
|
|
protected function generateAvatarFromSvg(int $size, bool $dark): ?string {
|
|
|
|
|
protected function generateAvatarFromSvg(int $size, bool $darkTheme): ?string {
|
|
|
|
|
if (!extension_loaded('imagick')) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
$font = __DIR__ . '/../../../core/fonts/NotoSans-Regular.ttf';
|
|
|
|
|
$svg = $this->getAvatarVector($size, $dark);
|
|
|
|
|
$svg = $this->getAvatarVector($size, $darkTheme);
|
|
|
|
|
$avatar = new Imagick();
|
|
|
|
|
$avatar->setFont($font);
|
|
|
|
|
$avatar->readImageBlob($svg);
|
|
|
|
@ -147,10 +147,10 @@ abstract class Avatar implements IAvatar {
|
|
|
|
|
/**
|
|
|
|
|
* Generate png avatar with GD
|
|
|
|
|
*/
|
|
|
|
|
protected function generateAvatar(string $userDisplayName, int $size, bool $dark): string {
|
|
|
|
|
protected function generateAvatar(string $userDisplayName, int $size, bool $darkTheme): string {
|
|
|
|
|
$text = $this->getAvatarText();
|
|
|
|
|
$textColor = $this->avatarBackgroundColor($userDisplayName);
|
|
|
|
|
$backgroundColor = $textColor->alphaBlending(0.1, $dark ? new Color(0, 0, 0) : new Color(255, 255, 255));
|
|
|
|
|
$backgroundColor = $textColor->alphaBlending(0.1, $darkTheme ? new Color(0, 0, 0) : new Color(255, 255, 255));
|
|
|
|
|
|
|
|
|
|
$im = imagecreatetruecolor($size, $size);
|
|
|
|
|
$background = imagecolorallocate(
|
|
|
|
|