From 19a89b598805e859a26663de61817b1dfbd5d6a4 Mon Sep 17 00:00:00 2001 From: potassium5703 Date: Wed, 14 Aug 2024 00:34:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B5=D1=81=D0=B0=D0=B6?= =?UTF-8?q?=D0=B8=D0=B2=D0=B0=D0=B5=D0=BC=D1=81=D1=8F=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=BA=D0=BE=D0=BB=D0=B5=D1=81?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clock.go | 2 +- imageutils/concat.go | 126 ------------------------------------------- imageutils/scale.go | 46 ---------------- letter/image.go | 2 +- 4 files changed, 2 insertions(+), 174 deletions(-) delete mode 100644 imageutils/concat.go delete mode 100644 imageutils/scale.go diff --git a/clock.go b/clock.go index 1ee56c3..16c5c10 100644 --- a/clock.go +++ b/clock.go @@ -8,7 +8,7 @@ import ( "io" "time" - "git.niplace.ru/XoxJlopeZ_1488/clock/imageutils" + "github.com/potassium5703/imageutils" "git.niplace.ru/XoxJlopeZ_1488/clock/letter" ) diff --git a/imageutils/concat.go b/imageutils/concat.go deleted file mode 100644 index e651740..0000000 --- a/imageutils/concat.go +++ /dev/null @@ -1,126 +0,0 @@ -package imageutils - -import ( - "image" - "image/color" - "image/draw" -) - -type Side int - -const ( - Left Side = iota - Right - Up - Down -) - -type pair struct { - first, second image.Image - side Side -} - -// Takes color.Model of the first Image. -func (p pair) ColorModel() color.Model { return p.first.ColorModel() } - -func (p pair) Bounds() image.Rectangle { - var ( - b1 = p.first.Bounds() - b2 = p.second.Bounds() - ) - - point := image.Point{} - switch p.side { - case Left: - fallthrough - case Right: - point = image.Point{ - X: b1.Dx() + b2.Dx(), - Y: max(b1.Dy(), b2.Dy()), - } - case Up: - fallthrough - case Down: - point = image.Point{ - X: max(b1.Dx(), b2.Dx()), - Y: b1.Dy() + b2.Dy(), - } - } - return image.Rectangle{ - image.ZP, - point, - } -} - -func (p pair) At(x, y int) color.Color { - img := image.NewRGBA(p.Bounds()) - - point := image.Point{} - switch p.side { - case Left: - p.first, p.second = p.second, p.first - fallthrough - case Right: - point = image.Point{-p.first.Bounds().Dx(), 0} - case Up: - p.first, p.second = p.second, p.first - fallthrough - case Down: - point = image.Point{0, -p.first.Bounds().Dy()} - } - // draw main - draw.Draw( - img, img.Bounds(), - p.first, - image.ZP, draw.Src, - ) - - // draw second - draw.Draw( - img, p.Bounds(), - p.second, - point, - draw.Src, - ) - - return img.At(x, y) -} - -func render(p pair) image.Image { - img := image.NewRGBA(p.Bounds()) - - point := image.Point{} - switch p.side { - case Left: - p.first, p.second = p.second, p.first - fallthrough - case Right: - point = image.Point{-p.first.Bounds().Dx(), 0} - case Up: - p.first, p.second = p.second, p.first - fallthrough - case Down: - point = image.Point{0, -p.first.Bounds().Dy()} - } - // draw main - draw.Draw( - img, img.Bounds(), - p.first, - image.ZP, draw.Src, - ) - - // draw second - draw.Draw( - img, p.Bounds(), - p.second, - point, - draw.Src, - ) - - return img -} - -// Concat concatenates second image on a given side. -func Concat(i1, i2 image.Image, s Side) image.Image { - return render(pair{i1, i2, s}) -} diff --git a/imageutils/scale.go b/imageutils/scale.go deleted file mode 100644 index 7c6039e..0000000 --- a/imageutils/scale.go +++ /dev/null @@ -1,46 +0,0 @@ -package imageutils - -import ( - "image" - "image/color" -) - -type rescaled struct { - src image.Image - scale int -} - -// ColorModel implements image.Image interface -func (r rescaled) ColorModel() color.Model { - return r.src.ColorModel() -} - -// Bounds implements image.Image interface -func (r rescaled) Bounds() image.Rectangle { - b := r.src.Bounds() - return image.Rectangle{ - Min: image.Point{ - X: b.Min.X, - Y: b.Min.Y, - }, - Max: image.Point{ - X: b.Max.X * r.scale, - Y: b.Max.Y * r.scale, - }, - } -} - -// At implements image.Image interface -func (r rescaled) At(x, y int) color.Color { - return r.src.At(x/r.scale, y/r.scale) -} - -// Scale scales image.Image to a given scale -// and then returns image.Image. -// For now it will work only with positive integers. -func Scale(img image.Image, scale int) image.Image { - if scale < 1 { - scale = 1 - } - return rescaled{img, scale} -} diff --git a/letter/image.go b/letter/image.go index ae10b89..913709f 100644 --- a/letter/image.go +++ b/letter/image.go @@ -1,7 +1,7 @@ package letter import ( - "git.niplace.ru/XoxJlopeZ_1488/clock/imageutils" + "github.com/potassium5703/imageutils" "image" "image/color" "image/draw"