putaran gambar golang

王林
Lepaskan: 2023-05-19 09:16:36
asal
833 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang berkembang pesat yang biasa digunakan dalam aplikasi web berskala besar dan pengkomputeran awan. Dari segi pemprosesan imej, Golang menyediakan API yang mudah digunakan dan cekap, yang menjadikan putaran imej sangat mudah.

Di bawah, kami akan menunjukkan cara menggunakan Golang untuk melaksanakan putaran imej. Katakan kita mempunyai imej JPEG bernama "image.jpg" yang perlu diputar 90 darjah Seterusnya kita akan menggunakan Golang untuk menyelesaikan tugasan ini.

Pertama, kita perlu mengimport perpustakaan "imej" dan "imej/jpeg" yang disertakan dengan Golang.

import (
    "image"
    "image/jpeg"
)
Salin selepas log masuk

Seterusnya, kita perlu membuka dan menyahkod fail imej.

path := "image.jpg"
file, err := os.Open(path)
if err != nil {
    //处理错误
}
defer file.Close()

img, err := jpeg.Decode(file)
if err != nil {
    //处理错误
}
Salin selepas log masuk

Kini, kita boleh melaksanakan fungsi putaran dengan memutar matriks imej. Di Golang, matlamat ini boleh dicapai melalui pakej "draw". Kita perlu mencipta imej baharu dahulu, kemudian salin imej asal ke imej baharu ini dan putarkannya.

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)
Salin selepas log masuk

Akhir sekali, kita perlu menyimpan imej yang diputar ke fail. Kami menyimpan imej yang diputar sebagai "rotatedImage.jpg".

outputFile, err := os.Create("rotatedImage.jpg")
if err != nil {
    //处理错误
}
defer outputFile.Close()

//将旋转后的图像保存到文件中
jpeg.Encode(outputFile, rotatedImg, nil)
Salin selepas log masuk

Kod sampel penuh:

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)
}
Salin selepas log masuk

Selepas menjalankan kod di atas, kita akan mendapat imej diputar 90 darjah, disimpan sebagai "rotatedImage.jpg".

Ringkasan:

Dalam artikel ini, kami menunjukkan cara melaksanakan putaran imej menggunakan Golang. Kami menggunakan perpustakaan "imej" dan "imej/jpeg" yang disertakan dengan Golang dan menggunakan pakej "lukisan" untuk memutarkan imej. Melalui contoh mudah ini, kita boleh lebih memahami keupayaan hebat Golang dalam pemprosesan imej.

Atas ialah kandungan terperinci putaran gambar golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan