英文网站建设注意什么,网站建设做什么会计分录,广州越秀区租房子多少钱一个月,做电影网站需要服务器最近在使用百度图片翻译时遇到一个问题#xff0c;就是图片会翻转90#xff0c;经与百度沟通#xff0c;发现是原始图片中有个旋转参数引起的。 于是写个demo验证一下。
// 获取元数据中的旋转方向
func getOrientation() int {//打开图像文件f, err : os.Open(image…最近在使用百度图片翻译时遇到一个问题就是图片会翻转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())}