png and jpeg gen, refactoring

This commit is contained in:
Dmitry Fedotov
2025-03-27 22:04:21 +03:00
parent b5df6e8c39
commit 71b95dbfae
4 changed files with 28 additions and 66 deletions

View File

@@ -2,6 +2,7 @@ package main
import (
"errors"
"fmt"
"image"
"image/color"
"image/jpeg"
@@ -9,9 +10,12 @@ import (
"io"
)
var errEncodePng = errors.New("не удалось создать png изображение")
var (
errEncodeImage = errors.New("не удалось создать изображение")
errUnknownFormat = errors.New("неизвестный формат изображения")
)
func createBarnsleyFernPng(s *settings, w io.Writer) error {
func createBarnsleyFernImage(s *settings, w io.Writer) error {
img := newImageWithBackGround(s.X, s.Y, s.BG)
drawBarnsleyFern(img, newColorFunc(s.CM), s.Dots)
@@ -22,13 +26,16 @@ func createBarnsleyFernPng(s *settings, w io.Writer) error {
Quality: 100,
}
if err := jpeg.Encode(w, img, opts); err != nil {
return errors.Join(errEncodePng, err)
return errors.Join(errEncodeImage, err)
}
case outputpng:
if err := png.Encode(w, img); err != nil {
return errors.Join(errEncodePng, err)
return errors.Join(errEncodeImage, err)
}
default:
return fmt.Errorf("%w: %d", s.OM)
}
return nil