Golang を使用して画像をトリミングおよび拡大縮小する方法
はじめに:
現代の Web 開発では、画像の処理が一般的な要件です。 Web サイトに画像を表示する場合でも、サムネイルを作成する場合でも、ユーザーがアップロードした画像をトリミングする場合でも、画像処理は重要なタスクです。この記事では、Golangを使って画像をトリミングしたりサイズ変更したりする方法を紹介します。
github.com/nfnt/resize
:画像のズームに使用します。 github.com/disintegration/imaging
: 画像のトリミングに使用されます。 次のコマンドを使用してインストールできます。
go get github.com/nfnt/resize go get github.com/disintegration/imaging
画像のスケーリング
画像のスケーリングとは、画像のサイズを同じ比率で調整することを指します。必要なサイズに。画像のスケーリングに resize
ライブラリを使用する方法を示すサンプル コードを次に示します。
package main import ( "fmt" "image" "image/jpeg" "log" "os" "github.com/nfnt/resize" ) func main() { file, err := os.Open("input.jpg") if err != nil { log.Fatal(err) } defer file.Close() // 使用jpeg.Decode函数解码JPEG文件 img, err := jpeg.Decode(file) if err != nil { log.Fatal(err) } // 调整图片大小为指定尺寸 resized := resize.Resize(300, 0, img, resize.Lanczos3) out, err := os.Create("output.jpg") if err != nil { log.Fatal(err) } defer out.Close() // 使用jpeg.Encode函数将调整大小后的图片保存为JPEG文件 jpeg.Encode(out, resized, nil) fmt.Println("图片缩放完成") }
上記のコードでは、まず input というファイルを開きます。 .jpg
の JPEG ファイルを開き、jpeg.Decode
関数を使用して画像をデコードします。次に、resize.Resize
関数を使用して、resize.Lanczos3
アルゴリズムを使用して、画像のサイズを 300 倍の自動的に計算された別のサイズに変更します。最後に、jpeg.Encode
関数を使用して、サイズ変更した画像を output.jpg
という名前の JPEG ファイルとして保存します。
画像のトリミング
画像のトリミングとは、指定された領域内の画像を、必要な位置とサイズに従って切り出すことを指します。画像のトリミングに imaging
ライブラリを使用する方法を示すサンプル コードを次に示します。
package main import ( "fmt" "image" "image/jpeg" "log" "os" "github.com/disintegration/imaging" ) func main() { file, err := os.Open("input.jpg") if err != nil { log.Fatal(err) } defer file.Close() // 使用jpeg.Decode函数解码JPEG文件 img, err := jpeg.Decode(file) if err != nil { log.Fatal(err) } // 裁剪图片 cropped := imaging.Crop(img, image.Rect(100, 100, 400, 300)) out, err := os.Create("output.jpg") if err != nil { log.Fatal(err) } defer out.Close() // 使用jpeg.Encode函数将裁剪后的图片保存为JPEG文件 jpeg.Encode(out, cropped, nil) fmt.Println("图片裁剪完成") }
上記のコードでは、最初に というファイルを開きます。 input.jpg
の JPEG ファイルを開き、jpeg.Decode
関数を使用して画像をデコードします。次に、imaging.Crop
関数を使用して、指定された開始点と終了点の座標に基づいて画像をトリミングします。最後に、jpeg.Encode
関数を使用して、トリミングされた画像を output.jpg
という名前の JPEG ファイルとして保存します。
結論:
画像処理に Golang を使用するのは非常に簡単で効率的です。 resize
ライブラリと imaging
ライブラリを使用すると、画像の切り抜きやサイズ変更が簡単にできます。この記事があなたにインスピレーションを与え、あなたのプロジェクトに役立つことを願っています。
以上がGolang を使用して画像をトリミングおよびサイズ変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。