38 lines
754 B
Go
38 lines
754 B
Go
|
package profilepictures
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"image"
|
||
|
"image/color"
|
||
|
"image/draw"
|
||
|
|
||
|
"github.com/fogleman/gg"
|
||
|
"golang.org/x/image/font"
|
||
|
"golang.org/x/image/math/fixed"
|
||
|
)
|
||
|
|
||
|
func DefaultProfilePicture(initials string) *image.RGBA {
|
||
|
img := image.NewRGBA(image.Rect(0, 0, 300, 300))
|
||
|
col := color.RGBA{36, 56, 135, 255}
|
||
|
white := color.RGBA{255, 255, 255, 255}
|
||
|
point := fixed.Point26_6{fixed.I(40), fixed.I(200)}
|
||
|
|
||
|
draw.Draw(img, img.Bounds(), &image.Uniform{col}, image.Point{X: 0, Y: 0}, draw.Src)
|
||
|
|
||
|
ff, err := gg.LoadFontFace("themes/default/fonts/bitter.ttf", 150.0)
|
||
|
if err != nil {
|
||
|
fmt.Println(err)
|
||
|
return img
|
||
|
}
|
||
|
|
||
|
d := &font.Drawer{
|
||
|
Dst: img,
|
||
|
Src: image.NewUniform(white),
|
||
|
Face: ff,
|
||
|
Dot: point,
|
||
|
}
|
||
|
d.DrawString(initials)
|
||
|
|
||
|
return img
|
||
|
}
|