🏎️
並行処理を使って画像処理[golang]
まず
こちらの記事は私が足りていないと思う所を重点的に勉強する。
onion7日間チャレンジのDay2になります。
詳しくはここの冒頭で書いてあるので気になる人は見てみてください。
作ったもの
Day2ではGoでは必須な並行処理の知識が足りていないと感じていたので、
ディレクトリの画像のサイズを変更するCLIツールを作成しました。
名前はresizon(resize+onion)ということにしました。
作ったものの概要
resizon(標準入力から操作)
jpegとpngに対応しています。
resizonは一つ一つの画像を並行処理しているため、高速に画像のサイズを変更することができます。
実際にやってみる
元画像
実行する
go run main.go
input create of image directory: ./output //出力先のファイルパス
input path of image directory: ./images //元画像のディレクトリのパス
input size: 600 600//変更するサイズ
サイズが変更された画像
サイズについて
サイズが一つの場合
アスペクト比を維持したまま出力します。
input size: 100
この時は元画像の短い辺を100pxにして、長い辺を元の画像の比に合わせるように変更します。
サイズが二つの場合
横、縦の順で入力されます。
input size: 100 200
横100px,縦200px
学んだこと
画像処理と並行処理のやり方を深くではないが、知ることができた。
並行処理に関しては、以下にまとめた
Discussion