Maison > développement back-end > Golang > le corps du texte

rotation des images golang

王林
Libérer: 2023-05-19 09:16:36
original
833 Les gens l'ont consulté

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"
)
Copier après la connexion

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 {
    //处理错误
}
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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)
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal