a8fd76557b
This PR fixes the builtin avatar generator. 1. The random background color makes some images very dirty. So now we only use white background for avatars. 2. We use left-right mirror avatars to satisfy #14799 3. Fix a small padding error in the algorithm
136 lines
4.8 KiB
Go
136 lines
4.8 KiB
Go
// Copyright 2021 The Gitea Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package identicon
|
|
|
|
import "image/color"
|
|
|
|
// DarkColors are dark colors for avatar blocks, they come from image/color/palette.WebSafe, and light colors (0xff) are removed
|
|
var DarkColors = []color.Color{
|
|
color.RGBA{0x00, 0x00, 0x33, 0xff},
|
|
color.RGBA{0x00, 0x00, 0x66, 0xff},
|
|
color.RGBA{0x00, 0x00, 0x99, 0xff},
|
|
color.RGBA{0x00, 0x00, 0xcc, 0xff},
|
|
color.RGBA{0x00, 0x33, 0x00, 0xff},
|
|
color.RGBA{0x00, 0x33, 0x33, 0xff},
|
|
color.RGBA{0x00, 0x33, 0x66, 0xff},
|
|
color.RGBA{0x00, 0x33, 0x99, 0xff},
|
|
color.RGBA{0x00, 0x33, 0xcc, 0xff},
|
|
color.RGBA{0x00, 0x66, 0x00, 0xff},
|
|
color.RGBA{0x00, 0x66, 0x33, 0xff},
|
|
color.RGBA{0x00, 0x66, 0x66, 0xff},
|
|
color.RGBA{0x00, 0x66, 0x99, 0xff},
|
|
color.RGBA{0x00, 0x66, 0xcc, 0xff},
|
|
color.RGBA{0x00, 0x99, 0x00, 0xff},
|
|
color.RGBA{0x00, 0x99, 0x33, 0xff},
|
|
color.RGBA{0x00, 0x99, 0x66, 0xff},
|
|
color.RGBA{0x00, 0x99, 0x99, 0xff},
|
|
color.RGBA{0x00, 0x99, 0xcc, 0xff},
|
|
color.RGBA{0x00, 0xcc, 0x00, 0xff},
|
|
color.RGBA{0x00, 0xcc, 0x33, 0xff},
|
|
color.RGBA{0x00, 0xcc, 0x66, 0xff},
|
|
color.RGBA{0x00, 0xcc, 0x99, 0xff},
|
|
color.RGBA{0x00, 0xcc, 0xcc, 0xff},
|
|
color.RGBA{0x33, 0x00, 0x00, 0xff},
|
|
color.RGBA{0x33, 0x00, 0x33, 0xff},
|
|
color.RGBA{0x33, 0x00, 0x66, 0xff},
|
|
color.RGBA{0x33, 0x00, 0x99, 0xff},
|
|
color.RGBA{0x33, 0x00, 0xcc, 0xff},
|
|
color.RGBA{0x33, 0x33, 0x00, 0xff},
|
|
color.RGBA{0x33, 0x33, 0x33, 0xff},
|
|
color.RGBA{0x33, 0x33, 0x66, 0xff},
|
|
color.RGBA{0x33, 0x33, 0x99, 0xff},
|
|
color.RGBA{0x33, 0x33, 0xcc, 0xff},
|
|
color.RGBA{0x33, 0x66, 0x00, 0xff},
|
|
color.RGBA{0x33, 0x66, 0x33, 0xff},
|
|
color.RGBA{0x33, 0x66, 0x66, 0xff},
|
|
color.RGBA{0x33, 0x66, 0x99, 0xff},
|
|
color.RGBA{0x33, 0x66, 0xcc, 0xff},
|
|
color.RGBA{0x33, 0x99, 0x00, 0xff},
|
|
color.RGBA{0x33, 0x99, 0x33, 0xff},
|
|
color.RGBA{0x33, 0x99, 0x66, 0xff},
|
|
color.RGBA{0x33, 0x99, 0x99, 0xff},
|
|
color.RGBA{0x33, 0x99, 0xcc, 0xff},
|
|
color.RGBA{0x33, 0xcc, 0x00, 0xff},
|
|
color.RGBA{0x33, 0xcc, 0x33, 0xff},
|
|
color.RGBA{0x33, 0xcc, 0x66, 0xff},
|
|
color.RGBA{0x33, 0xcc, 0x99, 0xff},
|
|
color.RGBA{0x33, 0xcc, 0xcc, 0xff},
|
|
color.RGBA{0x66, 0x00, 0x00, 0xff},
|
|
color.RGBA{0x66, 0x00, 0x33, 0xff},
|
|
color.RGBA{0x66, 0x00, 0x66, 0xff},
|
|
color.RGBA{0x66, 0x00, 0x99, 0xff},
|
|
color.RGBA{0x66, 0x00, 0xcc, 0xff},
|
|
color.RGBA{0x66, 0x33, 0x00, 0xff},
|
|
color.RGBA{0x66, 0x33, 0x33, 0xff},
|
|
color.RGBA{0x66, 0x33, 0x66, 0xff},
|
|
color.RGBA{0x66, 0x33, 0x99, 0xff},
|
|
color.RGBA{0x66, 0x33, 0xcc, 0xff},
|
|
color.RGBA{0x66, 0x66, 0x00, 0xff},
|
|
color.RGBA{0x66, 0x66, 0x33, 0xff},
|
|
color.RGBA{0x66, 0x66, 0x66, 0xff},
|
|
color.RGBA{0x66, 0x66, 0x99, 0xff},
|
|
color.RGBA{0x66, 0x66, 0xcc, 0xff},
|
|
color.RGBA{0x66, 0x99, 0x00, 0xff},
|
|
color.RGBA{0x66, 0x99, 0x33, 0xff},
|
|
color.RGBA{0x66, 0x99, 0x66, 0xff},
|
|
color.RGBA{0x66, 0x99, 0x99, 0xff},
|
|
color.RGBA{0x66, 0x99, 0xcc, 0xff},
|
|
color.RGBA{0x66, 0xcc, 0x00, 0xff},
|
|
color.RGBA{0x66, 0xcc, 0x33, 0xff},
|
|
color.RGBA{0x66, 0xcc, 0x66, 0xff},
|
|
color.RGBA{0x66, 0xcc, 0x99, 0xff},
|
|
color.RGBA{0x66, 0xcc, 0xcc, 0xff},
|
|
color.RGBA{0x99, 0x00, 0x00, 0xff},
|
|
color.RGBA{0x99, 0x00, 0x33, 0xff},
|
|
color.RGBA{0x99, 0x00, 0x66, 0xff},
|
|
color.RGBA{0x99, 0x00, 0x99, 0xff},
|
|
color.RGBA{0x99, 0x00, 0xcc, 0xff},
|
|
color.RGBA{0x99, 0x33, 0x00, 0xff},
|
|
color.RGBA{0x99, 0x33, 0x33, 0xff},
|
|
color.RGBA{0x99, 0x33, 0x66, 0xff},
|
|
color.RGBA{0x99, 0x33, 0x99, 0xff},
|
|
color.RGBA{0x99, 0x33, 0xcc, 0xff},
|
|
color.RGBA{0x99, 0x66, 0x00, 0xff},
|
|
color.RGBA{0x99, 0x66, 0x33, 0xff},
|
|
color.RGBA{0x99, 0x66, 0x66, 0xff},
|
|
color.RGBA{0x99, 0x66, 0x99, 0xff},
|
|
color.RGBA{0x99, 0x66, 0xcc, 0xff},
|
|
color.RGBA{0x99, 0x99, 0x00, 0xff},
|
|
color.RGBA{0x99, 0x99, 0x33, 0xff},
|
|
color.RGBA{0x99, 0x99, 0x66, 0xff},
|
|
color.RGBA{0x99, 0x99, 0x99, 0xff},
|
|
color.RGBA{0x99, 0x99, 0xcc, 0xff},
|
|
color.RGBA{0x99, 0xcc, 0x00, 0xff},
|
|
color.RGBA{0x99, 0xcc, 0x33, 0xff},
|
|
color.RGBA{0x99, 0xcc, 0x66, 0xff},
|
|
color.RGBA{0x99, 0xcc, 0x99, 0xff},
|
|
color.RGBA{0x99, 0xcc, 0xcc, 0xff},
|
|
color.RGBA{0xcc, 0x00, 0x00, 0xff},
|
|
color.RGBA{0xcc, 0x00, 0x33, 0xff},
|
|
color.RGBA{0xcc, 0x00, 0x66, 0xff},
|
|
color.RGBA{0xcc, 0x00, 0x99, 0xff},
|
|
color.RGBA{0xcc, 0x00, 0xcc, 0xff},
|
|
color.RGBA{0xcc, 0x33, 0x00, 0xff},
|
|
color.RGBA{0xcc, 0x33, 0x33, 0xff},
|
|
color.RGBA{0xcc, 0x33, 0x66, 0xff},
|
|
color.RGBA{0xcc, 0x33, 0x99, 0xff},
|
|
color.RGBA{0xcc, 0x33, 0xcc, 0xff},
|
|
color.RGBA{0xcc, 0x66, 0x00, 0xff},
|
|
color.RGBA{0xcc, 0x66, 0x33, 0xff},
|
|
color.RGBA{0xcc, 0x66, 0x66, 0xff},
|
|
color.RGBA{0xcc, 0x66, 0x99, 0xff},
|
|
color.RGBA{0xcc, 0x66, 0xcc, 0xff},
|
|
color.RGBA{0xcc, 0x99, 0x00, 0xff},
|
|
color.RGBA{0xcc, 0x99, 0x33, 0xff},
|
|
color.RGBA{0xcc, 0x99, 0x66, 0xff},
|
|
color.RGBA{0xcc, 0x99, 0x99, 0xff},
|
|
color.RGBA{0xcc, 0x99, 0xcc, 0xff},
|
|
color.RGBA{0xcc, 0xcc, 0x00, 0xff},
|
|
color.RGBA{0xcc, 0xcc, 0x33, 0xff},
|
|
color.RGBA{0xcc, 0xcc, 0x66, 0xff},
|
|
color.RGBA{0xcc, 0xcc, 0x99, 0xff},
|
|
color.RGBA{0xcc, 0xcc, 0xcc, 0xff},
|
|
}
|