reduce size to 56x56 and add a black border around images
This commit is contained in:
parent
b11c100d02
commit
b70f21d6c3
@ -15,7 +15,7 @@ type Palette struct {
|
|||||||
|
|
||||||
// Descr describes this plugin
|
// Descr describes this plugin
|
||||||
func (h *Palette) Descr() string {
|
func (h *Palette) Descr() string {
|
||||||
return "Creates an solid 256x56 image of the color specified."
|
return "Creates an solid 56x56 image of the color specified."
|
||||||
}
|
}
|
||||||
|
|
||||||
// Re is the regex for matching color messages.
|
// Re is the regex for matching color messages.
|
||||||
@ -44,11 +44,29 @@ func (h *Palette) parseHexColor(s string) (*color.RGBA, error) {
|
|||||||
return c, nil
|
return c, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isEdge(x, y int) bool {
|
||||||
|
if x == 0 || x == 55 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
if y == 0 || y == 55 {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
// RespondText to color request events
|
// RespondText to color request events
|
||||||
func (h *Palette) RespondText(c *gomatrix.Client, ev *gomatrix.Event, user, post string) {
|
func (h *Palette) RespondText(c *gomatrix.Client, ev *gomatrix.Event, user, post string) {
|
||||||
const width, height = 256, 56
|
const width, height = 56, 56
|
||||||
|
|
||||||
img := image.NewRGBA(image.Rect(0, 0, 256, 56))
|
img := image.NewRGBA(image.Rect(0, 0, 56, 56))
|
||||||
|
border := &color.RGBA{
|
||||||
|
R: 0x00,
|
||||||
|
G: 0x00,
|
||||||
|
B: 0x00,
|
||||||
|
A: 0xff,
|
||||||
|
}
|
||||||
color, err := h.parseHexColor(post)
|
color, err := h.parseHexColor(post)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
@ -57,9 +75,13 @@ func (h *Palette) RespondText(c *gomatrix.Client, ev *gomatrix.Event, user, post
|
|||||||
|
|
||||||
for y := 0; y < height; y++ {
|
for y := 0; y < height; y++ {
|
||||||
for x := 0; x < width; x++ {
|
for x := 0; x < width; x++ {
|
||||||
|
if isEdge(x, y) {
|
||||||
|
img.Set(x, y, border)
|
||||||
|
} else {
|
||||||
img.Set(x, y, color)
|
img.Set(x, y, color)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
err = SendImage(c, ev.RoomID, img)
|
err = SendImage(c, ev.RoomID, img)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user