This commit is contained in:
danil_e71
2020-07-17 13:40:03 +03:00
parent 1f7f807dfb
commit bc2782a693
10 changed files with 32950 additions and 8 deletions

62
example/encode/encode.go Normal file
View File

@@ -0,0 +1,62 @@
package main
import (
"fmt"
"io/ioutil"
"os"
"time"
"github.com/Danile71/go-gpujpeg"
)
const file = "test.rgb"
func main() {
err := gpujpeg.InitDevice(0)
data, err := ioutil.ReadFile(file)
if err != nil {
fmt.Println(err)
return
}
param := gpujpeg.SetParam()
defer param.Free()
param.SetInterleaved(1)
param.SetRestartInterval(16)
param.SetColorSpaceInternal(gpujpeg.GPUJPEG_YCBCR_BT601_256LVLS)
param.SetQuality(100)
paramImage := gpujpeg.SetImageParam()
defer paramImage.Free()
paramImage.SetCompCount(3)
paramImage.SetWidth(2442)
paramImage.SetHeight(1342)
paramImage.SetColorSpace(gpujpeg.GPUJPEG_RGB)
paramImage.SetPixelFormat(gpujpeg.GPUJPEG_U8)
// param.SetSamplingFactor(0, 4, 4)
// param.SetSamplingFactor(1, 2, 1)
// param.SetSamplingFactor(2, 2, 1)
start := time.Now()
defer func() {
fmt.Println("result", time.Since(start))
}()
encoder, err := gpujpeg.CreateEncoder()
if err != nil {
fmt.Println(err)
return
}
defer encoder.Free()
result, err := encoder.Encode(data, param, paramImage)
if err != nil {
fmt.Println(err)
return
}
ioutil.WriteFile("result.jpeg", result, os.ModePerm)
}