mirror of
https://codeberg.org/Codeberg/avatars.git
synced 2023-08-10 21:12:50 +03:00
added function generateSeed
This commit is contained in:
parent
e2d171d8b4
commit
9cac79f1c5
28
avatars.go
28
avatars.go
@ -10,11 +10,7 @@ import (
|
|||||||
|
|
||||||
// MakeAvatar create svg from seed
|
// MakeAvatar create svg from seed
|
||||||
func MakeAvatar(seedString string) string {
|
func MakeAvatar(seedString string) string {
|
||||||
var seed uint64
|
seed := generateSeed(seedString)
|
||||||
for _, c := range []byte(seedString) {
|
|
||||||
seed = bits.RotateLeft64(seed, 8)
|
|
||||||
seed ^= uint64(c)
|
|
||||||
}
|
|
||||||
if seed&1 == 0 {
|
if seed&1 == 0 {
|
||||||
return femaleAvatar(seed, "")
|
return femaleAvatar(seed, "")
|
||||||
}
|
}
|
||||||
@ -23,22 +19,12 @@ func MakeAvatar(seedString string) string {
|
|||||||
|
|
||||||
// MakeFemaleAvatar create female svg from seed
|
// MakeFemaleAvatar create female svg from seed
|
||||||
func MakeFemaleAvatar(seedString string) string {
|
func MakeFemaleAvatar(seedString string) string {
|
||||||
var seed uint64
|
return femaleAvatar(generateSeed(seedString), "")
|
||||||
for _, c := range []byte(seedString) {
|
|
||||||
seed = bits.RotateLeft64(seed, 8)
|
|
||||||
seed ^= uint64(c)
|
|
||||||
}
|
|
||||||
return femaleAvatar(seed, "")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakeMaleAvatar create male svg from seed
|
// MakeMaleAvatar create male svg from seed
|
||||||
func MakeMaleAvatar(seedString string) string {
|
func MakeMaleAvatar(seedString string) string {
|
||||||
var seed uint64
|
return maleAvatar(generateSeed(seedString), "")
|
||||||
for _, c := range []byte(seedString) {
|
|
||||||
seed = bits.RotateLeft64(seed, 8)
|
|
||||||
seed ^= uint64(c)
|
|
||||||
}
|
|
||||||
return maleAvatar(seed, "")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,6 +37,14 @@ type lcg struct {
|
|||||||
seed uint64
|
seed uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func generateSeed(seedString string) (seed uint64) {
|
||||||
|
for _, c := range []byte(seedString) {
|
||||||
|
seed = bits.RotateLeft64(seed, 8)
|
||||||
|
seed ^= uint64(c)
|
||||||
|
}
|
||||||
|
return seed
|
||||||
|
}
|
||||||
|
|
||||||
func (g *lcg) random() uint32 {
|
func (g *lcg) random() uint32 {
|
||||||
/* Linear Congruent Generator, POSIX/glibc [de]rand48 setting, bits [47..0] are output bits */
|
/* Linear Congruent Generator, POSIX/glibc [de]rand48 setting, bits [47..0] are output bits */
|
||||||
g.seed = (25214903917*g.seed + 11) % 281474976710656
|
g.seed = (25214903917*g.seed + 11) % 281474976710656
|
||||||
|
Loading…
x
Reference in New Issue
Block a user