我正在为大图像的缩放级别18-1编写地图标注器。我需要对图像进行下采样,使得缩放级别17的像素在18处是4个像素,18是原始分辨率,所有图块都是256x256。我怎么在Go中做到这一点?
答案 0 :(得分:1)
看看nfnt/resize。它是一个图像调整大小的库(但谷歌会告诉你同样的):
func main() {
// open "test.jpg"
file, err := os.Open("test.jpg")
if err != nil {
log.Fatal(err)
}
// decode jpeg into image.Image
img, err := jpeg.Decode(file)
if err != nil {
log.Fatal(err)
}
file.Close()
// resize to width 1000 using Lanczos resampling
// and preserve aspect ratio
m := resize.Resize(1000, 0, img, resize.Lanczos3)
out, err := os.Create("test_resized.jpg")
if err != nil {
log.Fatal(err)
}
defer out.Close()
// write new image to file
jpeg.Encode(out, m, nil)
}