From 69aae6b93dcadd9e4895f86fe661ee80e79dcf9e Mon Sep 17 00:00:00 2001 From: Nick White Date: Tue, 8 Oct 2019 15:49:52 +0100 Subject: Remove parts that have been moved elsewhere, and rename to rescribe.xyz/utils bookpipeline is now at rescribe.xyz/bookpipeline preproc is now at rescribe.xyz/preproc integralimg is now at rescribe.xyz/preproc/integralimg --- pkg/line/line.go | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 pkg/line/line.go (limited to 'pkg/line') diff --git a/pkg/line/line.go b/pkg/line/line.go new file mode 100644 index 0000000..d4e3e44 --- /dev/null +++ b/pkg/line/line.go @@ -0,0 +1,57 @@ +package line + +import ( + "image" + "image/png" + "io" + "os" +) + +type Detail struct { + Name string + Avgconf float64 + Img CopyableImg + Text string + OcrName string +} + +type CopyableImg interface { + CopyLineTo(io.Writer) error +} + +type Details []Detail + +func (l Details) Len() int { return len(l) } +func (l Details) Less(i, j int) bool { return l[i].Avgconf < l[j].Avgconf } +func (l Details) Swap(i, j int) { l[i], l[j] = l[j], l[i] } + +// This is an implementation of the CopyableImg interface that +// stores the image directly as an image.Image +type ImgDirect struct { + Img image.Image +} + +func (i ImgDirect) CopyLineTo(w io.Writer) error { + err := png.Encode(w, i.Img) + if err != nil { + return err + } + return nil +} + +// This is an implementation of the CopyableImg interface that +// stores the path of an image +type ImgPath struct { + Path string +} + +func (i ImgPath) CopyLineTo(w io.Writer) error { + f, err := os.Open(i.Path) + if err != nil { + return err + } + defer f.Close() + + _, err = io.Copy(w, f) + return err +} -- cgit v1.2.1-24-ge1ad