From 7d2aadd2a0823dfdad3708d77de8f9695e8eb4a0 Mon Sep 17 00:00:00 2001 From: ryo_ishibashi Date: Wed, 8 Jul 2020 17:39:18 +0900 Subject: [PATCH 1/2] create kadai1 --- kadai1/ryokky59/README.md | 38 +++++++++ kadai1/ryokky59/convert/convert.go | 126 +++++++++++++++++++++++++++++ kadai1/ryokky59/go.mod | 3 + kadai1/ryokky59/img/nomikai_1.jpg | Bin 0 -> 66658 bytes kadai1/ryokky59/img/nomikai_2.jpg | Bin 0 -> 36705 bytes kadai1/ryokky59/main.go | 7 ++ 6 files changed, 174 insertions(+) create mode 100644 kadai1/ryokky59/README.md create mode 100644 kadai1/ryokky59/convert/convert.go create mode 100644 kadai1/ryokky59/go.mod create mode 100644 kadai1/ryokky59/img/nomikai_1.jpg create mode 100644 kadai1/ryokky59/img/nomikai_2.jpg create mode 100644 kadai1/ryokky59/main.go diff --git a/kadai1/ryokky59/README.md b/kadai1/ryokky59/README.md new file mode 100644 index 0000000..a0d569a --- /dev/null +++ b/kadai1/ryokky59/README.md @@ -0,0 +1,38 @@ +# 課題1 画像変換コマンドを作ろう + +## 課題内容 +次の仕様を満たすコマンドを作って下さい + +* [x] ディレクトリを指定する +* [x] 指定したディレクトリ以下のJPGファイルをPNGに変換(デフォルト) +* [x] ディレクトリ以下は再帰的に処理する +* [x] 変換前と変換後の画像形式を指定できる(オプション) + +以下を満たすように開発してください +* [x] mainパッケージと分離する +* [x] 自作パッケージと標準パッケージと準標準パッケージのみ使う + * 準標準パッケージ:golang.org/x以下のパッケージ +* [x] ユーザ定義型を作ってみる +* [x] GoDocを生成してみる +* [x] Go Modulesを使ってみる + +# 動作例 + +``` +$ go build -o imgconv +$ ./imgconv -dir ./img + or +$ ./imgconv -dir ./img -from=png -to=jpg + +-dir 対象のディレクトリのパスを指定 +-from 変換する予定の画像の拡張子を指定 +-to 変換後の画像の拡張子を指定 +``` + +# 感想 + +「ユーザ定義型を作ってみる」という課題がどうしようか結構迷いました。 +特になくても作れそうだったのでどう取り入れればわかりやすいかと自分なりに考えてやってみました。 + +また、GoDocも普段あまり書くことを意識していなかったのでこれで良さそうなのかわかっていないです。 +publicなものだけに記述していますが、GoDocの事を考えてもうすこしpublicに切り出せるものは出してあげても良かったのかなと思ったりしています。 diff --git a/kadai1/ryokky59/convert/convert.go b/kadai1/ryokky59/convert/convert.go new file mode 100644 index 0000000..81d045e --- /dev/null +++ b/kadai1/ryokky59/convert/convert.go @@ -0,0 +1,126 @@ + +package convert + +import ( + "flag" + "fmt" + "os" + "path/filepath" + "strings" + "image" + "image/png" + "image/jpeg" +) + +var ( + dir string + from string + to string +) + +func init() { + flag.StringVar(&dir, "dir", "./", "対象のディレクトリ") + flag.StringVar(&from, "from", "jpg", "変換する対象の画像の拡張子") + flag.StringVar(&to, "to", "png", "変換した後の画像の拡張子") + flag.Parse() +} + +// Exec 画像の変換を実行する +func Exec() error { + converter, err := newImgConverter(dir, from, to) + if err != nil { + fmt.Println(err) + return nil + } + + err = filepath.Walk(converter.dir, func(path string, info os.FileInfo, err error) error { + if strings.HasSuffix(info.Name(), from) { + converter.name = strings.TrimRight(info.Name(), from) + err := converter.convert() + if err != nil { + fmt.Println(err) + return nil + } + } + return nil + }) + if err != nil { + fmt.Println(err) + return nil + } + + return nil +} + +type imgConverter struct { + dir string + name string + from string + to string +} + +func newImgConverter(dir, from, to string) (*imgConverter, error) { + if from != "png" && from != "jpeg" && from != "jpg" { + return nil, fmt.Errorf("Unsupported extension in from") + } + + if to != "png" && to != "jpeg" && to != "jpg" { + return nil, fmt.Errorf("Unsupported extension in to") + } + + if from == to { + return nil, fmt.Errorf("from and to are conflict") + } + + if f, err := os.Stat(dir); os.IsNotExist(err) || !f.IsDir() { + return nil, fmt.Errorf("Directory does not exist") + } + + return &imgConverter{ + dir: dir, + from: from, + to: to, + }, nil +} + +func (c *imgConverter) convert() error { + file, err := os.Open(c.path()) + defer file.Close() + if err != nil { + return err + } + + img, _, err := image.Decode(file) + if err != nil { + return err + } + + dst, err := os.Create(c.dstPath()) + defer dst.Close() + if err != nil { + return err + } + + switch c.to { + case "png": + err = png.Encode(dst, img) + if err != nil { + return err + } + case "jpeg", "jpg": + err = jpeg.Encode(dst, img, nil) + if err != nil { + return err + } + } + + return nil +} + +func (c *imgConverter) path() string { + return c.dir + c.name + c.from +} + +func (c *imgConverter) dstPath() string { + return c.dir + c.name + c.to +} diff --git a/kadai1/ryokky59/go.mod b/kadai1/ryokky59/go.mod new file mode 100644 index 0000000..3d0ebfe --- /dev/null +++ b/kadai1/ryokky59/go.mod @@ -0,0 +1,3 @@ +module github.com/gopherdojo/dojo8/kadai1/ryokky59 + +go 1.14 diff --git a/kadai1/ryokky59/img/nomikai_1.jpg b/kadai1/ryokky59/img/nomikai_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a1d1ac1e6622915d596d16ee364671c39a940cca GIT binary patch literal 66658 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 uhRl&H z*e(}9dtvk$cG2G%9tXT6J9bIMR6F8z)+bP^-h7v2Y9rj+T@o5CJ2qfhaBU0RvPto* z3Bixn@-Y<s&V!PI!=O!)+#!`=xi7%l?27w%=MpDn@=ES+kFc^%7(wfHTM+kMI9uxv|3*H*;w6qV|OH83#USP182Z^}i zCYZhpB#>4oyK{+I)R+TX*#un0ujw!AlGlz)60BdKfTsw$ZT^yX%~}Zh>gEsn&hH1j zEF8U91Y!R?WiX}Q6%rDbnr$eEpo=c3sfhG0$BJCcvQ)B^jM9LOCrIx28Ya5ij-++eCYaBMGhO!1rbmlC_!Bj z*c4k1*W#uKHgKJXy!QmDMLs-HeY1`V43b{isAbQ#gXIFH2AO^!DGN z=HIDq!B@y@ZXn)^*uC~ws>dVyU!LkJ*OELXOyOWrlP{K@ry+1hwIKqv5^T+w+5D

3xZ` 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

ZE7tjzlx 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 literal 0 HcmV?d00001 diff --git a/kadai1/ryokky59/img/nomikai_2.jpg b/kadai1/ryokky59/img/nomikai_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..73dc39095dc989f5f0c915693c59b4a3e3131390 GIT binary patch literal 36705 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 Date: Fri, 10 Jul 2020 22:54:42 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BB=96=E3=81=AE=E6=96=B9=E3=81=AE?= =?UTF-8?q?=E3=83=AC=E3=83=93=E3=83=A5=E3=83=BC=E8=A6=8B=E3=81=AA=E3=81=8C?= =?UTF-8?q?=E3=82=89=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF=E3=82=BF=E3=83=AA?= =?UTF-8?q?=E3=83=B3=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kadai1/ryokky59/cmd/imgconv/main.go | 55 ++++++++++++++ kadai1/ryokky59/convert/convert.go | 111 +++++++++++----------------- kadai1/ryokky59/go.mod | 2 + kadai1/ryokky59/go.sum | 3 + kadai1/ryokky59/main.go | 7 -- 5 files changed, 103 insertions(+), 75 deletions(-) create mode 100644 kadai1/ryokky59/cmd/imgconv/main.go create mode 100644 kadai1/ryokky59/go.sum delete mode 100644 kadai1/ryokky59/main.go diff --git a/kadai1/ryokky59/cmd/imgconv/main.go b/kadai1/ryokky59/cmd/imgconv/main.go new file mode 100644 index 0000000..436e3de --- /dev/null +++ b/kadai1/ryokky59/cmd/imgconv/main.go @@ -0,0 +1,55 @@ +package main + +import ( + "flag" + "fmt" + "os" + + "github.com/gopherdojo/dojo8/kadai1/ryokky59/convert" +) + +var converter convert.ImgConverter + +func init() { + flag.StringVar(&converter.Dir, "dir", "./", "対象のディレクトリ") + flag.StringVar(&converter.From, "from", "jpg", "変換する対象の画像の拡張子") + flag.StringVar(&converter.To, "to", "png", "変換した後の画像の拡張子") + flag.Parse() +} + +func main() { + if converter.From != "png" && + converter.From != "jpeg" && + converter.From != "jpg" && + converter.From != "gif" && + converter.From != "bmp" && + converter.From != "tiff" { + fmt.Errorf("Unsupported extension in from") + os.Exit(1) + } + + if converter.To != "png" && + converter.To != "jpeg" && + converter.To != "jpg" && + converter.To != "gif" && + converter.To != "bmp" && + converter.To != "tiff" { + fmt.Errorf("Unsupported extension in to") + os.Exit(1) + } + + if converter.From == converter.To { + fmt.Errorf("from and to are conflict") + os.Exit(1) + } + + if f, err := os.Stat(converter.Dir); os.IsNotExist(err) || !f.IsDir() { + fmt.Errorf("Directory does not exist") + os.Exit(1) + } + + if err := convert.Exec(&converter); err != nil { + fmt.Println(err) + os.Exit(1) + } +} diff --git a/kadai1/ryokky59/convert/convert.go b/kadai1/ryokky59/convert/convert.go index 81d045e..16ca602 100644 --- a/kadai1/ryokky59/convert/convert.go +++ b/kadai1/ryokky59/convert/convert.go @@ -1,96 +1,54 @@ - package convert import ( - "flag" "fmt" + "image" + "image/gif" + "image/jpeg" + "image/png" "os" "path/filepath" "strings" - "image" - "image/png" - "image/jpeg" -) -var ( - dir string - from string - to string + "golang.org/x/image/bmp" + "golang.org/x/image/tiff" ) -func init() { - flag.StringVar(&dir, "dir", "./", "対象のディレクトリ") - flag.StringVar(&from, "from", "jpg", "変換する対象の画像の拡張子") - flag.StringVar(&to, "to", "png", "変換した後の画像の拡張子") - flag.Parse() -} - // Exec 画像の変換を実行する -func Exec() error { - converter, err := newImgConverter(dir, from, to) - if err != nil { - fmt.Println(err) - return nil - } - - err = filepath.Walk(converter.dir, func(path string, info os.FileInfo, err error) error { - if strings.HasSuffix(info.Name(), from) { - converter.name = strings.TrimRight(info.Name(), from) +func Exec(converter *ImgConverter) error { + err := filepath.Walk(converter.Dir, func(path string, info os.FileInfo, err error) error { + if strings.HasSuffix(info.Name(), converter.From) { + converter.Name = strings.TrimRight(info.Name(), converter.From) err := converter.convert() if err != nil { - fmt.Println(err) - return nil + return err } } return nil }) if err != nil { - fmt.Println(err) - return nil + return err } return nil } -type imgConverter struct { - dir string - name string - from string - to string +// ImgConverter 画像の拡張子を変換する +type ImgConverter struct { + Dir string + Name string + From string + To string } -func newImgConverter(dir, from, to string) (*imgConverter, error) { - if from != "png" && from != "jpeg" && from != "jpg" { - return nil, fmt.Errorf("Unsupported extension in from") - } - - if to != "png" && to != "jpeg" && to != "jpg" { - return nil, fmt.Errorf("Unsupported extension in to") - } - - if from == to { - return nil, fmt.Errorf("from and to are conflict") - } - - if f, err := os.Stat(dir); os.IsNotExist(err) || !f.IsDir() { - return nil, fmt.Errorf("Directory does not exist") - } - - return &imgConverter{ - dir: dir, - from: from, - to: to, - }, nil -} - -func (c *imgConverter) convert() error { +func (c *ImgConverter) convert() error { file, err := os.Open(c.path()) - defer file.Close() if err != nil { return err } + defer file.Close() - img, _, err := image.Decode(file) + img, _, err := image.Decode(file) if err != nil { return err } @@ -101,7 +59,7 @@ func (c *imgConverter) convert() error { return err } - switch c.to { + switch strings.ToLower(c.To) { case "png": err = png.Encode(dst, img) if err != nil { @@ -112,15 +70,32 @@ func (c *imgConverter) convert() error { if err != nil { return err } + case "gif": + err = gif.Encode(dst, img, nil) + if err != nil { + return err + } + case "bmp": + err = bmp.Encode(dst, img) + if err != nil { + return err + } + case "tiff": + err = tiff.Encode(dst, img, nil) + if err != nil { + return err + } + default: + return fmt.Errorf("Unsupported extension") } return nil } -func (c *imgConverter) path() string { - return c.dir + c.name + c.from +func (c *ImgConverter) path() string { + return c.Dir + c.Name + c.From } -func (c *imgConverter) dstPath() string { - return c.dir + c.name + c.to +func (c *ImgConverter) dstPath() string { + return c.Dir + c.Name + c.To } diff --git a/kadai1/ryokky59/go.mod b/kadai1/ryokky59/go.mod index 3d0ebfe..2278dbd 100644 --- a/kadai1/ryokky59/go.mod +++ b/kadai1/ryokky59/go.mod @@ -1,3 +1,5 @@ module github.com/gopherdojo/dojo8/kadai1/ryokky59 go 1.14 + +require golang.org/x/image v0.0.0-20200618115811-c13761719519 diff --git a/kadai1/ryokky59/go.sum b/kadai1/ryokky59/go.sum new file mode 100644 index 0000000..394251b --- /dev/null +++ b/kadai1/ryokky59/go.sum @@ -0,0 +1,3 @@ +golang.org/x/image v0.0.0-20200618115811-c13761719519 h1:1e2ufUJNM3lCHEY5jIgac/7UTjd6cgJNdatjPdFWf34= +golang.org/x/image v0.0.0-20200618115811-c13761719519/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/kadai1/ryokky59/main.go b/kadai1/ryokky59/main.go deleted file mode 100644 index 09db3a0..0000000 --- a/kadai1/ryokky59/main.go +++ /dev/null @@ -1,7 +0,0 @@ -package main - -import "github.com/gopherdojo/dojo8/kadai1/ryokky59/convert" - -func main() { - convert.Exec() -}