Maison  >  Article  >  développement back-end  >  rotation des images golang

rotation des images golang

王林
王林original
2023-05-19 09:16:36783parcourir

Golang est un langage de programmation en croissance rapide, couramment utilisé dans les applications Web à grande échelle et le cloud computing. En termes de traitement d'image, Golang fournit une API simple à utiliser et efficace, qui rend la rotation des images très simple.

Ci-dessous, nous montrerons comment utiliser Golang pour implémenter la rotation d'image. Supposons que nous ayons une image JPEG nommée « image.jpg » qui doit être pivotée de 90 degrés. Nous utiliserons ensuite Golang pour effectuer cette tâche.

Tout d'abord, nous devons importer les bibliothèques "image" et "image/jpeg" fournies avec Golang.

import (
    "image"
    "image/jpeg"
)

Ensuite, nous devons ouvrir et décoder le fichier image.

path := "image.jpg"
file, err := os.Open(path)
if err != nil {
    //处理错误
}
defer file.Close()

img, err := jpeg.Decode(file)
if err != nil {
    //处理错误
}

Maintenant, nous pouvons implémenter la fonction de rotation en faisant pivoter la matrice d'image. Dans Golang, cet objectif peut être atteint grâce au package « tirage au sort ». Nous devons d'abord créer une nouvelle image, puis copier l'image originale sur cette nouvelle image et la faire pivoter.

newImg := image.NewRGBA(image.Rect(0, 0, img.Bounds().Dy(), img.Bounds().Dx()))

//拷贝原图像到新图像
draw.Draw(newImg, newImg.Bounds(), img, img.Bounds().Min, draw.Src)

//旋转新图像
rotatedImg := imaging.Rotate(newImg, 90, color.Transparent)

Enfin, nous devons enregistrer l'image pivotée dans un fichier. Nous enregistrons l'image pivotée sous "rotatedImage.jpg".

outputFile, err := os.Create("rotatedImage.jpg")
if err != nil {
    //处理错误
}
defer outputFile.Close()

//将旋转后的图像保存到文件中
jpeg.Encode(outputFile, rotatedImg, nil)

Exemple de code complet :

package main

import (
    "image"
    "image/color"
    "image/draw"
    "image/jpeg"
    "os"

    "github.com/disintegration/imaging"
)

func main() {
    path := "image.jpg"
    file, err := os.Open(path)
    if err != nil {
        //处理错误
    }
    defer file.Close()

    img, err := jpeg.Decode(file)
    if err != nil {
        //处理错误
    }

    newImg := image.NewRGBA(image.Rect(0, 0, img.Bounds().Dy(), img.Bounds().Dx()))

    //拷贝原图像到新图像
    draw.Draw(newImg, newImg.Bounds(), img, img.Bounds().Min, draw.Src)

    //旋转新图像
    rotatedImg := imaging.Rotate(newImg, 90, color.Transparent)

    outputFile, err := os.Create("rotatedImage.jpg")
    if err != nil {
        //处理错误
    }
    defer outputFile.Close()

    //将旋转后的图像保存到文件中
    jpeg.Encode(outputFile, rotatedImg, nil)
}

Après avoir exécuté le code ci-dessus, nous obtiendrons une image pivotée à 90 degrés, enregistrée sous "rotatedImage.jpg".

Résumé :

Dans cet article, nous avons montré comment implémenter la rotation d'image à l'aide de Golang. Nous avons utilisé les bibliothèques "image" et "image/jpeg" fournies avec Golang, ainsi que le package "draw" pour faire pivoter l'image. Grâce à cet exemple simple, nous pouvons mieux comprendre les puissantes capacités de Golang en matière de traitement d'image.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn