Skip to content

Commit 1c1111e

Browse files
committed
refactoring
1 parent e1e86eb commit 1c1111e

File tree

5 files changed

+32
-38
lines changed

5 files changed

+32
-38
lines changed

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,23 +24,21 @@ func init() {
2424
}
2525

2626
func main() {
27-
// validate options
2827
if err := options.Validate(allowedExts); err != nil {
2928
onExit(err)
3029
}
3130

32-
// get filenames
3331
dirnames := uniq(args)
3432
paths, err := getTargetFilenames(dirnames, *options.From)
3533

3634
if err != nil {
3735
onExit(err)
3836
}
3937

40-
// convert
4138
for _, path := range paths {
4239
param := imgconv.ConvertParam{
43-
File: imgconv.NewFile(path),
40+
Path: path,
41+
File: imgconv.NewFile(),
4442
BeforeImage: imgconv.NewImage(*options.From),
4543
AfterImage: imgconv.NewImage(*options.To),
4644
FromExt: *options.From,
@@ -52,7 +50,7 @@ func main() {
5250
onExit(err)
5351
}
5452
} else {
55-
fmt.Printf("%[1]s.%[2]s => %[1]s.%[3]s\n", param.File.Path, param.FromExt, param.ToExt)
53+
fmt.Printf("%[1]s.%[2]s => %[1]s.%[3]s\n", path, param.FromExt, param.ToExt)
5654
}
5755
}
5856
}

kadai2/tanaka0325/imgconv/file.go

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,15 @@ import (
66
)
77

88
type OpenCreator interface {
9-
Open() (io.ReadCloser, error)
10-
Create() (io.WriteCloser, error)
9+
Open(string) (io.ReadCloser, error)
10+
Create(string) (io.WriteCloser, error)
1111
}
1212

13-
type File struct {
14-
Path string
15-
}
13+
type File struct{}
1614

17-
func (f File) Open() (io.ReadCloser, error) { return os.Open(f.Path) }
18-
func (f File) Create() (io.WriteCloser, error) { return os.Create(f.Path) }
15+
func (File) Open(n string) (io.ReadCloser, error) { return os.Open(n) }
16+
func (File) Create(n string) (io.WriteCloser, error) { return os.Create(n) }
1917

20-
func NewFile(p string) File {
21-
return File{Path: p}
18+
func NewFile() File {
19+
return File{}
2220
}

kadai2/tanaka0325/imgconv/image.go

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -24,44 +24,42 @@ type DecodeEncoder interface {
2424
Encoder
2525
}
2626

27-
type Image struct{}
28-
2927
// ImagePng is type for png format.
30-
type ImagePNG Image
28+
type ImagePNG struct{}
3129

32-
func (ip ImagePNG) Decode(r io.Reader) (image.Image, error) { return png.Decode(r) }
30+
func (ImagePNG) Decode(r io.Reader) (image.Image, error) { return png.Decode(r) }
3331

34-
func (ip ImagePNG) Encode(w io.Writer, i image.Image) error { return png.Encode(w, i) }
32+
func (ImagePNG) Encode(w io.Writer, i image.Image) error { return png.Encode(w, i) }
3533

3634
// ImageJPEG is type for jpeg format.
37-
type ImageJPEG Image
35+
type ImageJPEG struct{}
3836

39-
func (ip ImageJPEG) Decode(r io.Reader) (image.Image, error) { return jpeg.Decode(r) }
37+
func (ImageJPEG) Decode(r io.Reader) (image.Image, error) { return jpeg.Decode(r) }
4038

41-
func (ip ImageJPEG) Encode(w io.Writer, i image.Image) error { return jpeg.Encode(w, i, nil) }
39+
func (ImageJPEG) Encode(w io.Writer, i image.Image) error { return jpeg.Encode(w, i, nil) }
4240

4341
// ImageGIF is type for gif format.
44-
type ImageGIF Image
42+
type ImageGIF struct{}
4543

46-
func (ip ImageGIF) Decode(r io.Reader) (image.Image, error) { return gif.Decode(r) }
44+
func (ImageGIF) Decode(r io.Reader) (image.Image, error) { return gif.Decode(r) }
4745

48-
func (ip ImageGIF) Encode(w io.Writer, i image.Image) error {
46+
func (ImageGIF) Encode(w io.Writer, i image.Image) error {
4947
return gif.Encode(w, i, &gif.Options{NumColors: 256})
5048
}
5149

5250
// ImageBMP is type for bmp format.
53-
type ImageBMP Image
51+
type ImageBMP struct{}
5452

55-
func (ip ImageBMP) Decode(r io.Reader) (image.Image, error) { return bmp.Decode(r) }
53+
func (ImageBMP) Decode(r io.Reader) (image.Image, error) { return bmp.Decode(r) }
5654

57-
func (ip ImageBMP) Encode(w io.Writer, i image.Image) error { return bmp.Encode(w, i) }
55+
func (ImageBMP) Encode(w io.Writer, i image.Image) error { return bmp.Encode(w, i) }
5856

5957
// ImageTIFF is type for tiff format.
60-
type ImageTIFF Image
58+
type ImageTIFF struct{}
6159

62-
func (ip ImageTIFF) Decode(r io.Reader) (image.Image, error) { return tiff.Decode(r) }
60+
func (ImageTIFF) Decode(r io.Reader) (image.Image, error) { return tiff.Decode(r) }
6361

64-
func (ip ImageTIFF) Encode(w io.Writer, i image.Image) error { return tiff.Encode(w, i, nil) }
62+
func (ImageTIFF) Encode(w io.Writer, i image.Image) error { return tiff.Encode(w, i, nil) }
6563

6664
func NewImage(ext string) DecodeEncoder {
6765
switch ext {

kadai2/tanaka0325/imgconv/imgconv.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
// Imgconv package is to convert images file format.
22
package imgconv
33

4+
// ConvertParam is parameter to convert image format.
45
type ConvertParam struct {
5-
File File
6+
Path string
7+
File OpenCreator
68
BeforeImage Decoder
79
AfterImage Encoder
810
FromExt string
911
ToExt string
1012
}
1113

14+
// Do is func to convert image format.
1215
func Do(param ConvertParam) (err error) {
13-
// open file
14-
r, err := param.File.Open()
16+
r, err := param.File.Open(param.Path + "." + param.FromExt)
1517
if err != nil {
1618
return
1719
}
1820
defer r.Close()
1921

20-
// decode
2122
img, err := param.BeforeImage.Decode(r)
2223
if err != nil {
2324
return
2425
}
2526

26-
// create file
27-
w, err := param.File.Create()
27+
w, err := param.File.Create(param.Path + "." + param.ToExt)
2828
if err != nil {
2929
return err
3030
}
@@ -33,7 +33,6 @@ func Do(param ConvertParam) (err error) {
3333
err = w.Close()
3434
}()
3535

36-
// encode
3736
if err := param.AfterImage.Encode(w, img); err != nil {
3837
return err
3938
}

kadai2/tanaka0325/imgconv/options.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ type Options struct {
1212
DryRun *bool
1313
}
1414

15+
// Validate is func to check exts passed by options is allowed.
1516
func (opt Options) Validate(allowList []string) error {
1617
to := strings.ToLower(*opt.To)
1718
from := strings.ToLower(*opt.From)

0 commit comments

Comments
 (0)