Maison >développement back-end >Golang >La méthode de Golang pour obtenir une compression de qualité d'image

La méthode de Golang pour obtenir une compression de qualité d'image

WBOY
WBOYoriginal
2023-08-17 22:28:552261parcourir

La méthode de Golang pour obtenir une compression de qualité dimage

La méthode Golang pour obtenir une compression de qualité d'image

Avec le développement rapide d'Internet, les images sont devenues l'un des médias importants permettant aux gens de communiquer et de transmettre des informations en ligne. Cependant, les images haute résolution occupent non seulement beaucoup d'espace de stockage, mais augmentent également le temps de chargement lors de la transmission réseau, ce qui a un certain impact sur l'expérience utilisateur. Par conséquent, dans les applications pratiques, la compression d’images constitue une tâche très importante. Cet article explique comment utiliser Golang pour compresser la qualité de l'image.

Tout d’abord, nous devons importer la bibliothèque de traitement graphique de Golang github.com/disintegration/imaging. Cette bibliothèque fournit une série de fonctions de traitement des images, notamment la compression de la qualité de l'image.

Voici un exemple de code simple qui montre comment utiliser Golang pour effectuer une compression de qualité sur des images :

package main

import (
    "github.com/disintegration/imaging"
    "image/jpeg"
    "os"
)

func main() {
    // 打开原图片文件
    file, err := os.Open("input.jpg")
    if err != nil {
        panic(err)
    }
    defer file.Close()

    // 将文件内容解码成图像对象
    img, err := jpeg.Decode(file)
    if err != nil {
        panic(err)
    }

    // 压缩图片质量并保存
    err = imaging.Save(qualityCompression(img, 80), "output.jpg")
    if err != nil {
        panic(err)
    }
}

// 图片质量压缩函数
func qualityCompression(img image.Image, quality int) *image.NRGBA {
    // 调整图片质量
    return imaging.Encode(img, imaging.JPEGQuality(quality))
}

Dans le code ci-dessus, nous introduisons d'abord les bibliothèques nécessaires. Ensuite, ouvrez le fichier image d'origine via la fonction os.Open, puis utilisez la fonction jpeg.Decode pour décoder le contenu du fichier en un objet image. Ensuite, nous appelons la fonction qualityCompression pour effectuer une compression de qualité sur l’objet image d’origine. Dans la fonction QualityCompression, nous utilisons d'abord la fonction Imaging.Encode pour encoder l'objet image d'origine au format JPEG, puis définissons la taille de la qualité de compression via la fonction Imaging.JPEGQuality, et enfin enregistrons l'objet image compressé.

En termes de paramètres de qualité de compression, nous pouvons ajuster la qualité de la compression en définissant le paramètre de qualité. D'une manière générale, la plage de valeurs de qualité est comprise entre 1 et 100. Plus la valeur est grande, meilleure est la qualité de la compression, mais la taille du fichier deviendra également plus grande.

Il convient de noter que l'exemple de code ci-dessus montre uniquement la méthode de compression de qualité pour les images au format JPEG. Si vous devez compresser des images dans d'autres formats, vous pouvez utiliser une méthode similaire. Il vous suffit d'apporter les modifications correspondantes à l'ouverture, au décodage, à l'enregistrement et à d'autres opérations du fichier.

Pour résumer, cet article présente comment utiliser Golang pour compresser la qualité de l'image et fournit un exemple de code simple. En effectuant une compression de qualité sur les images, vous pouvez réduire la taille du fichier image tout en garantissant l'effet d'affichage de l'image. J'espère que cet article pourra vous aider à résoudre les problèmes de compression d'images dans des applications pratiques.

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