Go语言如何做图片缩放_Go语言图片缩放裁剪教程【推荐】

张开发
2026/4/20 4:43:10 15 分钟阅读

分享文章

Go语言如何做图片缩放_Go语言图片缩放裁剪教程【推荐】
imaging.Resize 一用就变形是因为默认强制拉伸而非等比缩放传0可让某方向自适应Fit留白、Fill裁剪Crop需手动计算左上角坐标并校验越界顺序应先缩再裁插值器选ApproxBiLinear更稳妥。imaging.Resize 为什么一用就变形imaging.Resize 默认不做等比约束它只认你传的 width 和 height强行拉伸填满——哪怕原图是 4:3你给 300×150结果就是压扁或拉长。这不是 bug是设计如此。它本质是「stretch-to-fit」不是「scale-to-fit」。传 0 表示该方向按原始比例自动推算比如 imaging.Resize(img, 300, 0, imaging.Fit) → 宽定为 300高自适应 imaging.Fit缩放到指定矩形内不裁剪可能留白 imaging.Fill缩放到完全填满矩形再居中裁剪掉溢出部分 别写 imaging.Resize(img, 300, 200, imaging.Lanczos) —— 这是变形高发写法 裁剪前必须手动算坐标没有“以中心裁剪”快捷方式imaging.Crop 的参数是 image.Rect(x, y, xw, yh)原点在左上角不是中心点。想从图中间抠个 200×200 正方形得自己算起点先读尺寸w, h : img.Bounds().Max.X, img.Bounds().Max.Y 再算左上角x : (w - 200) / 2y : (h - 200) / 2 最后裁imaging.Crop(img, image.Rect(x, y, x200, y200)) 常见错误 Trenz AI驱动的社交电商营销平台专为TikTok Shop设计

更多文章