go build -o converter main.go
./converter -d test -sf jpg -df png
または
go run main.go -d test -sf jpg -df png
出力結果はoutputディレクトリに格納される
-d 変換対象の画像が入ったディレクトリ(中にディレクトリを含めてもOK)
-sf 変換前のフォーマット(jpg,jpeg,png,gifが指定可能) デフォルトはjpg
-df 変換後のフォーマット(jpg,jpeg,png,gifが指定可能) デフォルトはpng
flag.Args()
で受け取る値を対象のディレクトリとしました。
dirwalkメソッドの中でディレクトリの場合はさらにディレクトリ内のファイルを探すようにしました。
オプションを指定しなかった場合、デフォルトでjpgファイルをpngファイルに変換するようにしました。
画像変換処理をconvertパッケージに格納し、mainパッケージへimportして呼び出すようにしました。
Fileタイプを作成しました。ファイル名と変換元のファイル形式、変換後のファイル形式を格納します。
godoc -http:3000
で作成しました。
サポートしている標準パッケージ
- json
- bytes.Buffer
- bufio.Reader
- os.File
- image
- jpeg
- png
- base64
インターフェイスを�実装していたり、引数として扱えるようにしている。
- io.Readerとio.Writerを満たした構造体(クラス)を同じように扱える �読み込み元や出力先がファイル、画面、バッファ、ネットワークなどのデータの種類に関わらず[]byteでさえあれば全て同じように処理できる。
また、例えば引数としてio.Reader型を宣言している場合、 os.Stdinやos.Fileなどio.Readerを満たしている全ての構造体を同じように扱える。
また、テスト時にio.Readerとio.Writerを実装したモックを作成することで、 入出力先をローカルファイルなどにすることでテストがやりやすくなる。
�