feat: cleaned up code
This commit is contained in:
45
main.go
45
main.go
@@ -8,24 +8,41 @@ import (
|
|||||||
"github.com/fogleman/gg"
|
"github.com/fogleman/gg"
|
||||||
)
|
)
|
||||||
|
|
||||||
// 8x8 square of 100x100 px squares
|
/*
|
||||||
|
8x8 square of 100x100 px squares
|
||||||
|
|
||||||
|
First 6 characters of the hash are the color
|
||||||
|
For the next 8 characters each character
|
||||||
|
represents 4 bits of a row being on or off.
|
||||||
|
The image is then mirrored to the right side.
|
||||||
|
|
||||||
|
9d26bf3cf1fb2b2f02d4a2013333f4fcd551cb2e
|
||||||
|
9d26bf -> color
|
||||||
|
3 -> row1
|
||||||
|
c -> row2
|
||||||
|
...
|
||||||
|
b -> row8
|
||||||
|
3 = 0 0 1 1
|
||||||
|
c = 1 1 0 0
|
||||||
|
...
|
||||||
|
b = 1 0 1 1
|
||||||
|
*/
|
||||||
func main() {
|
func main() {
|
||||||
dc := gg.NewContext(800, 800)
|
dc := gg.NewContext(800, 800)
|
||||||
|
|
||||||
hash := hash("InsightForgeOrg")
|
hash := hash("Jaybee18")
|
||||||
|
|
||||||
colorString := hash[0:6]
|
colorString := hash[0:6]
|
||||||
r, g, b := rgbFromHex(colorString)
|
r, g, b := rgbFromHex(colorString)
|
||||||
dc.SetRGB255(r, g, b)
|
dc.SetRGB255(r, g, b)
|
||||||
|
|
||||||
for i, character := range hash[6:14] {
|
for i, character := range hash[6:14] {
|
||||||
tmp, _ := strconv.ParseUint(string(character), 16, 8)
|
integer, _ := strconv.ParseUint(string(character), 16, 4)
|
||||||
n := int(tmp)
|
for j := range 4 {
|
||||||
for _, v := range []uint{0, 1, 2, 3} {
|
on := hasBit(integer, j)
|
||||||
on := hasBit(n, v)
|
|
||||||
|
|
||||||
dc.DrawRectangle(float64(v * 100), float64(i * 100), 100, 100)
|
dc.DrawRectangle(float64(j * 100), float64(i * 100), 100, 100)
|
||||||
dc.DrawRectangle(700 - float64(v * 100), float64(i * 100), 100, 100)
|
dc.DrawRectangle(700 - float64(j * 100), float64(i * 100), 100, 100)
|
||||||
if !on {
|
if !on {
|
||||||
dc.SetRGB255(r, g, b)
|
dc.SetRGB255(r, g, b)
|
||||||
} else {
|
} else {
|
||||||
@@ -52,17 +69,7 @@ func hash(str string) string {
|
|||||||
return fmt.Sprintf("%x", res)
|
return fmt.Sprintf("%x", res)
|
||||||
}
|
}
|
||||||
|
|
||||||
func hasBit(n int, pos uint) bool {
|
func hasBit(n uint64, pos int) bool {
|
||||||
val := n & (1 << pos)
|
val := n & (1 << pos)
|
||||||
return (val > 0)
|
return (val > 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 9d26bf3cf1fb2b2f02d4a2013333f4fcd551cb2e
|
|
||||||
// 9d26bf -> color
|
|
||||||
// 3 -> row1
|
|
||||||
// c -> row2
|
|
||||||
// ...
|
|
||||||
// b -> row8
|
|
||||||
|
|
||||||
// 3 = 0 0 1 1
|
|
||||||
//
|
|
||||||
|
|||||||
Reference in New Issue
Block a user