Skip to content

Commit 3783728

Browse files
committed
rename CnvImage => Image
1 parent 675b8a5 commit 3783728

File tree

3 files changed

+83
-83
lines changed

3 files changed

+83
-83
lines changed

kadai2/tanaka0325/imgconv/cmd/imgconv/main.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ func main() {
4141
for _, path := range paths {
4242
param := imgconv.ConvertParam{
4343
Path: path,
44-
BeforeImage: imgconv.NewCnvImage(*options.From),
45-
AfterImage: imgconv.NewCnvImage(*options.To),
44+
BeforeImage: imgconv.NewImage(*options.From),
45+
AfterImage: imgconv.NewImage(*options.To),
4646
FromExt: *options.From,
4747
ToExt: *options.To,
4848
}

kadai2/tanaka0325/imgconv/cnv_image.go

Lines changed: 0 additions & 81 deletions
This file was deleted.

kadai2/tanaka0325/imgconv/image.go

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package imgconv
2+
3+
import (
4+
"image"
5+
"image/gif"
6+
"image/jpeg"
7+
"image/png"
8+
"io"
9+
10+
"golang.org/x/image/bmp"
11+
"golang.org/x/image/tiff"
12+
)
13+
14+
type Decoder interface {
15+
Decode(io.Reader) (image.Image, error)
16+
}
17+
18+
type Encoder interface {
19+
Encode(io.Writer, image.Image) error
20+
}
21+
22+
type DecodeEncoder interface {
23+
Decoder
24+
Encoder
25+
}
26+
27+
type Image struct{}
28+
29+
// ImagePng is type for png format.
30+
type ImagePNG Image
31+
32+
func (ip ImagePNG) Decode(r io.Reader) (image.Image, error) { return png.Decode(r) }
33+
34+
func (ip ImagePNG) Encode(w io.Writer, i image.Image) error { return png.Encode(w, i) }
35+
36+
// ImageJPEG is type for jpeg format.
37+
type ImageJPEG Image
38+
39+
func (ip ImageJPEG) Decode(r io.Reader) (image.Image, error) { return jpeg.Decode(r) }
40+
41+
func (ip ImageJPEG) Encode(w io.Writer, i image.Image) error { return jpeg.Encode(w, i, nil) }
42+
43+
// ImageGIF is type for gif format.
44+
type ImageGIF Image
45+
46+
func (ip ImageGIF) Decode(r io.Reader) (image.Image, error) { return gif.Decode(r) }
47+
48+
func (ip ImageGIF) Encode(w io.Writer, i image.Image) error {
49+
return gif.Encode(w, i, &gif.Options{NumColors: 256})
50+
}
51+
52+
// ImageBMP is type for bmp format.
53+
type ImageBMP Image
54+
55+
func (ip ImageBMP) Decode(r io.Reader) (image.Image, error) { return bmp.Decode(r) }
56+
57+
func (ip ImageBMP) Encode(w io.Writer, i image.Image) error { return bmp.Encode(w, i) }
58+
59+
// ImageTIFF is type for tiff format.
60+
type ImageTIFF Image
61+
62+
func (ip ImageTIFF) Decode(r io.Reader) (image.Image, error) { return tiff.Decode(r) }
63+
64+
func (ip ImageTIFF) Encode(w io.Writer, i image.Image) error { return tiff.Encode(w, i, nil) }
65+
66+
func NewImage(ext string) DecodeEncoder {
67+
switch ext {
68+
case "png":
69+
return &ImagePNG{}
70+
case "jpg", "jpeg":
71+
return &ImageJPEG{}
72+
case "gif":
73+
return &ImageGIF{}
74+
case "bmp":
75+
return &ImageBMP{}
76+
case "tiff", "tif":
77+
return &ImageTIFF{}
78+
}
79+
80+
return nil
81+
}

0 commit comments

Comments
 (0)