Golang は、大規模な Web アプリケーションやクラウド コンピューティングで一般的に使用される急速に成長しているプログラミング言語です。画像処理に関しては、Golang は使いやすく効率的な API を提供しており、画像の回転が非常に簡単になります。
以下では、Golang を使用して画像の回転を実装する方法を説明します。 90 度回転する必要がある「image.jpg」という名前の JPEG 画像があるとします。次に、Golang を使用してこのタスクを完了します。
まず、Golang に付属の「image」ライブラリと「image/jpeg」ライブラリをインポートする必要があります。
import ( "image" "image/jpeg" )
次に、画像ファイルを開いてデコードする必要があります。
path := "image.jpg" file, err := os.Open(path) if err != nil { //处理错误 } defer file.Close() img, err := jpeg.Decode(file) if err != nil { //处理错误 }
これで、画像マトリックスを回転することで回転関数を実装できます。 Golang では、この目標は「draw」パッケージを通じて達成できます。まず新しい画像を作成し、次に元の画像をこの新しい画像にコピーして回転する必要があります。
newImg := image.NewRGBA(image.Rect(0, 0, img.Bounds().Dy(), img.Bounds().Dx())) //拷贝原图像到新图像 draw.Draw(newImg, newImg.Bounds(), img, img.Bounds().Min, draw.Src) //旋转新图像 rotatedImg := imaging.Rotate(newImg, 90, color.Transparent)
最後に、回転した画像をファイルに保存する必要があります。回転した画像を「rotatedImage.jpg」として保存します。
outputFile, err := os.Create("rotatedImage.jpg") if err != nil { //处理错误 } defer outputFile.Close() //将旋转后的图像保存到文件中 jpeg.Encode(outputFile, rotatedImg, nil)
完全なサンプル コード:
package main import ( "image" "image/color" "image/draw" "image/jpeg" "os" "github.com/disintegration/imaging" ) func main() { path := "image.jpg" file, err := os.Open(path) if err != nil { //处理错误 } defer file.Close() img, err := jpeg.Decode(file) if err != nil { //处理错误 } newImg := image.NewRGBA(image.Rect(0, 0, img.Bounds().Dy(), img.Bounds().Dx())) //拷贝原图像到新图像 draw.Draw(newImg, newImg.Bounds(), img, img.Bounds().Min, draw.Src) //旋转新图像 rotatedImg := imaging.Rotate(newImg, 90, color.Transparent) outputFile, err := os.Create("rotatedImage.jpg") if err != nil { //处理错误 } defer outputFile.Close() //将旋转后的图像保存到文件中 jpeg.Encode(outputFile, rotatedImg, nil) }
上記のコードを実行すると、90 度回転された画像が取得され、「rotatedImage.jpg」として保存されます。
概要:
この記事では、Golang を使用して画像の回転を実現する方法を示します。 Golang に付属の「image」ライブラリと「image/jpeg」ライブラリを使用し、画像の回転には「draw」パッケージを使用しました。この簡単な例を通じて、画像処理における Golang の強力な機能をよりよく理解できます。
以上がgolangの画像回転の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。