欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > 验证图片旋转

验证图片旋转

2025/2/24 1:16:44 来源:https://blog.csdn.net/suiyuanwangshi/article/details/140891568  浏览:    关键词:验证图片旋转

最近在使用百度图片翻译时遇到一个问题,就是图片会翻转90,经与百度沟通,发现是原始图片中有个旋转参数引起的。
于是写个demo验证一下。

// 获取元数据中的旋转方向
func getOrientation() int {//打开图像文件f, err := os.Open("image.jpg")if err != nil {log.Fatal(err)}defer f.Close()// 解码 EXIF 元数据x, err := exif.Decode(f)if err != nil {if err.Error() == "EOF" {return 0}log.Fatal(err)}// 获取图片方向orientation, err := x.Get(exif.Orientation)if err != nil {log.Fatalf("failed to get orientation: %v", err)}// 打印方向信息fmt.Println("Orientation:", orientation)// 根据 EXIF 方向信息获取旋转角度// 1: 正常(0°)// 3: 180°// 6: 90° 顺时针// 8: 270° 顺时针rotateDegrees := map[int]int{1: 0,3: 180,6: 90,8: 270,}value, err := orientation.Int(0)if err != nil {log.Fatalf("failed to parse orientation value: %v", err)}fmt.Printf("Rotate degrees: %d\n", rotateDegrees[value])return rotateDegrees[value]
}
// 直接旋转图片
func setRotate(angle int) {// 打开源图像文件startTime := time.Now()srcImage, err := imaging.Open("image-out.jpg")if err != nil {log.Fatalf("failed to open image: %v", err)}fmt.Println(angle)rotatedImage := imaging.Rotate(srcImage, float64(angle), image.Transparent)// 保存旋转后的图像err = imaging.Save(rotatedImage, "rotated_image.jpg")if err != nil {log.Fatalf("failed to save image: %v", err)}log.Println("Image rotated and saved to rotated_image.jpg", time.Since(startTime).Milliseconds())}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词