Golang の画質圧縮を実現する方法

WBOY
リリース: 2023-08-17 22:28:55
オリジナル
2199 人が閲覧しました

Golang の画質圧縮を実現する方法

Golang の画質圧縮を実現する方法

インターネットの急速な発展に伴い、写真は人々がオンラインで情報を伝達し伝達するための重要なメディアの 1 つになりました。ただし、高解像度の画像は多くのストレージ容量を占有するだけでなく、ネットワーク送信時の読み込み時間も長くなり、ユーザー エクスペリエンスに一定の影響を与えます。したがって、実際のアプリケーションでは、画像圧縮は非常に意味のある作業となります。この記事ではGolangを使って画質を圧縮する方法を紹介します。

まず、Golang のグラフィックス処理ライブラリ github.com/disintegration/imaging をインポートする必要があります。このライブラリは、画質圧縮を含む画像を処理するための一連の関数を提供します。

以下は、Golang を使用して画像の高品質圧縮を実行する方法を示す簡単なサンプル コードです:

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))
}
ログイン後にコピー

上記のコードでは、最初に必要なライブラリを導入します。次に、os.Open 関数を使用して元の画像ファイルを開き、jpeg.Decode 関数を使用してファイルの内容を画像オブジェクトにデコードします。次に、qualityCompression 関数を呼び出して、元の画像オブジェクトに品質圧縮を実行します。 qualityCompression 関数では、まず、imaging.Encode 関数を使用して元の画像オブジェクトを JPEG 形式にエンコードし、imaging.JPEGQuality 関数を通じて圧縮品質サイズを設定し、最後に圧縮された画像オブジェクトを保存します。

圧縮品質の設定に関しては、品質パラメータを設定することで圧縮品質を調整できます。一般に、品質の値の範囲は 1 ~ 100 です。値が大きいほど圧縮品質は高くなりますが、ファイル サイズも大きくなります。

上記のサンプル コードは、JPEG 形式の画像の品質圧縮方法のみを示していることに注意してください。他の形式で画像を圧縮する必要がある場合も、ファイルを開く、デコード、保存などの操作に対応する変更を加えるだけで、同様の方法を使用できます。

要約すると、この記事では Golang を使用して画質を圧縮する方法を紹介し、簡単なサンプル コードを提供します。画像を高画質圧縮することで、画像の表示効果を確保しつつ、画像ファイルのサイズを削減できます。この記事が、実際のアプリケーションにおける画像圧縮の問題に対処するのに役立つことを願っています。

以上がGolang の画質圧縮を実現する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート