This commit is contained in:
Dmitry Fedotov
2025-03-25 23:55:13 +03:00
parent a95b833004
commit c3b2036713
5 changed files with 187 additions and 102 deletions

49
image.go Normal file
View File

@@ -0,0 +1,49 @@
package main
import (
"errors"
"image"
"image/color"
"image/png"
"io"
)
var erreEcnodePng = errors.New("не удалось создать png изображение")
func createBarnsleyFernPng(s *settings, w io.Writer) error {
img := newImageWithBackGround(s.X, s.Y, s.BG)
drawBarnsleyFern(img, newColorFunc(s.CM), s.Dots)
if err := png.Encode(w, img); err != nil {
return errors.Join(erreEcnodePng, err)
}
return nil
}
func newImageWithBackGround(x, y int, background color.Color) *image.RGBA {
img := createImage(x, y)
fillBackground(img, background)
return img
}
func createImage(x, y int) *image.RGBA {
rect := image.Rectangle{
image.Point{0, 0},
image.Point{x, y},
}
return image.NewRGBA(rect)
}
func fillBackground(img *image.RGBA, c color.Color) {
rect := img.Bounds()
for x := range rect.Max.X {
for y := range rect.Max.Y {
img.Set(x, y, c)
}
}
}