Golang 画像処理: 画像を鮮明にしたりぼかしたりする方法
はじめに:
多くのアプリケーション シナリオでは、画像に対して特殊効果処理を実行する必要があります。シャープ化とぼかしとして。 Golang は効率的なプログラミング言語として、画像処理機能を実装するための豊富なライブラリ関数も提供します。この記事では、Golang を使用して画像を鮮明にしたりぼかしたりする方法を紹介し、詳細なコード例を添付します。
まず、ライブラリをインストールする必要があります。これは、次のコマンドを使用してインストールできます。
go get github.com/disintegration/gift
次に、次のコマンドを使用できます。画像の鮮明化を実現する次のコード:
package main import ( "fmt" "image" "image/jpeg" "os" "github.com/disintegration/gift" ) func main() { // 打开图片文件 file, err := os.Open("input.jpg") if err != nil { fmt.Println("打开图片文件失败:", err) return } defer file.Close() // 解码图片 img, _, err := image.Decode(file) if err != nil { fmt.Println("解码图片失败:", err) return } // 创建礼物对象 g := gift.New( gift.Convolution([]float32{ -1, -1, -1, -1, 9, -1, -1, -1, -1, }, false, false, false, 0.0), ) // 创建输出图片 dst := image.NewRGBA(g.Bounds(img.Bounds())) // 使用礼物对象处理图片 g.Draw(dst, img) // 创建输出图片文件 outFile, err := os.Create("output.jpg") if err != nil { fmt.Println("创建输出图片文件失败:", err) return } defer outFile.Close() // 编码输出图片文件 err = jpeg.Encode(outFile, dst, nil) if err != nil { fmt.Println("编码输出图片文件失败:", err) return } fmt.Println("锐化处理完成") }
上記のコードでは、まず「input.jpg」という名前の画像ファイルを開き、image.Decode
関数を使用してそれをデコードします。次に、gift
オブジェクトを作成し、gift.Convolution
関数を使用してシャープ化パラメーターを渡し、g.Draw
関数を通じて画像を処理しました。 。最後に、出力画像ファイル「output.jpg」を作成し、jpeg.Encode
関数を使用して、処理結果を JPEG 形式にエンコードしてファイルに保存します。
次は、Golang を使用した画像ぼかし処理のサンプル コードです:
package main import ( "fmt" "image" "image/jpeg" "os" "github.com/disintegration/gift" ) func main() { // 打开图片文件 file, err := os.Open("input.jpg") if err != nil { fmt.Println("打开图片文件失败:", err) return } defer file.Close() // 解码图片 img, _, err := image.Decode(file) if err != nil { fmt.Println("解码图片失败:", err) return } // 创建礼物对象 g := gift.New( gift.Blur(5), ) // 创建输出图片 dst := image.NewRGBA(g.Bounds(img.Bounds())) // 使用礼物对象处理图片 g.Draw(dst, img) // 创建输出图片文件 outFile, err := os.Create("output.jpg") if err != nil { fmt.Println("创建输出图片文件失败:", err) return } defer outFile.Close() // 编码输出图片文件 err = jpeg.Encode(outFile, dst, nil) if err != nil { fmt.Println("编码输出图片文件失败:", err) return } fmt.Println("模糊处理完成") }
上記のコードでは、シャープ化コードと似ています。最初に、という名前の入力ファイルを開きます。 「input .jpg」画像ファイルを入力し、image.Decode
関数を使用してそれをデコードします。次に、gift
オブジェクトを作成し、gift.Blur
関数を使用してぼかしパラメータを渡し、g.Draw
関数を使用してぼかしパラメータを処理します。画像。最後に、出力画像ファイル「output.jpg」を作成し、jpeg.Encode
関数を使用して、処理結果を JPEG 形式にエンコードしてファイルに保存します。
結論:
この記事では、Golang を使用して画像を鮮明にしたりぼかしたりする方法を紹介し、詳細なコード例を示します。これらのサンプル コードを学習することで、Golang の画像処理方法と技術をより深く理解し、実際のアプリケーションで画像を処理するためのガイダンスと支援を得ることができます。この記事が読者にインスピレーションを与え、役立つことを願っています。
以上がGolang 画像処理: 画像をシャープにしたりぼかしたりする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。