package main import ( "bytes" "fmt" "image/color" "github.com/disintegration/imaging" ) func main() { cTable := []byte("ABCD.FGH,JK") buf := bytes.NewBuffer(nil) img, err := imaging.Open("image.jpg") if err != nil { panic(err) } img = imaging.Resize(img, 80, 40, imaging.Lanczos) for i := 0; i < 40; i++ { for j := 0; j < 80; j++ { g := color.GrayModel.Convert(img.At(j, i)).(color.Gray).Y p := int(g) * (len(cTable) - 1) / 255 buf.WriteByte(cTable[p]) } buf.WriteByte('\n') } fmt.Printf(buf.String()) }

얼마 전에 쓱삭 해봤던 녀석인데, 남들 소스 얼핏 보니 리사이징이랑 그레이스케일로 변환하는 것까지 스스로 하셨군요.. 저도 이따가 한 번 도전해봐야겠습니다.