// Copyright 2015 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build ignore // Custom image resizer. Saved for posterity. package main import ( "flag" "fmt" "image" "image/jpeg" _ "image/png" "log" "os" "golang.org/x/image/draw" ) var n = flag.Int("n", 0, "number of pixels to inset before scaling") func main() { flag.Parse() fmt.Println(flag.Args()) for _, s := range flag.Args() { resize(s) } } func resize(s string) { in, err := os.Open(s) if err != nil { log.Fatal(err) } defer in.Close() src, _, err := image.Decode(in) if err != nil { log.Fatal(err) } name := "../" + s out, err := os.Create(name) fmt.Println(name) if err != nil { log.Fatal(err) } defer out.Close() dst := image.NewGray(image.Rect(0, 0, 256, 256)) draw.Draw(dst, dst.Bounds(), image.White, image.ZP, draw.Src) dr := image.Rect(*n, *n, 256-*n, 256-*n) draw.ApproxBiLinear.Scale(dst, dr, src, src.Bounds(), draw.Src, nil) err = jpeg.Encode(out, dst, nil) if err != nil { log.Fatal(err) } }