Web 開発では、画像のトランスコーディングは非常に一般的な要件です。 Golang では、標準ライブラリの image および image/jpeg パッケージを使用して画像をトランスコードできます。
Golang では、image.Decoder を通じて画像を標準画像オブジェクトにデコードでき、image.Encoder を通じて標準画像オブジェクトを JPG、PNG、BMP などの必要な画像形式にエンコードできます。この記事では、例として JPEG 形式の画像を PNG 形式にトランスコードします。
まず、JPEG 形式で画像を読み取る必要があります。これは次のコードで実現できます:
file, err := os.Open("input.jpg") if err != nil { log.Fatal(err) } defer file.Close() img, err := jpeg.Decode(file) if err != nil { log.Fatal(err) }
上記のコードでは、os.Open を使用して input という名前の画像を開きます。 .jpg 画像ファイルを開くことができない場合は、エラーがスローされます。次に、jpeg.Decode を使用してファイルを画像オブジェクト img にデコードします。デコードに失敗すると、エラーがスローされます。
次に、画像オブジェクトを PNG 形式の画像にエンコードする必要があります。次のように、image/png パッケージのエンコーダを使用してエンコードできます:
out, err := os.Create("output.png") if err != nil { log.Fatal(err) } defer out.Close() err = png.Encode(out, img) if err != nil { log.Fatal(err) }
上記のコードでは、os.Create を使用して、output.png という名前の PNG 形式の画像ファイルを作成します。 、エラーがスローされます。次に、png.Encode を使用して、イメージ オブジェクト img を PNG 形式のイメージにエンコードし、その結果を output.png に書き込みます。エンコードが失敗すると、エラーがスローされます。
上記のコードの完全な実装は次のとおりです:
package main import ( "image/jpeg" "image/png" "log" "os" ) func main() { file, err := os.Open("input.jpg") if err != nil { log.Fatal(err) } defer file.Close() img, err := jpeg.Decode(file) if err != nil { log.Fatal(err) } out, err := os.Create("output.png") if err != nil { log.Fatal(err) } defer out.Close() err = png.Encode(out, img) if err != nil { log.Fatal(err) } log.Println("Image conversion successful!") }
上記のコードを実行すると、JPEG 形式の画像を PNG 形式の画像にトランスコードできます。トランスコーディングプロセス中にエラーを適切に処理する必要があり、ファイルと画像オブジェクトを使用した後は対応するリソースを閉じる必要があることに注意してください。
以上がgolangで画像をトランスコードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。