mirror of
https://github.com/jehiah/TrafficSpeed.git
synced 2025-10-06 08:46:57 +08:00
migrate to github.com/asticode/go-astiav
This commit is contained in:
50
internal/project/video_iterator_test.go
Normal file
50
internal/project/video_iterator_test.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package project
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"image"
|
||||
"image/png"
|
||||
"log"
|
||||
"os"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func SavePNG(img image.Image, filename string) error {
|
||||
if img == nil {
|
||||
return nil
|
||||
}
|
||||
// Save the image to a file
|
||||
file, err := os.Create(filename)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
return png.Encode(file, img)
|
||||
}
|
||||
|
||||
func TestNewIterator(t *testing.T) {
|
||||
i, err := NewIterator("../../IMG_2399_1024.MOV")
|
||||
if err != nil {
|
||||
t.Fatalf("NewIterator() error = %v", err)
|
||||
}
|
||||
defer i.Close()
|
||||
os.Mkdir("testdata", 0755)
|
||||
|
||||
n := 0
|
||||
for i.Next() && n < 10 {
|
||||
log.Printf("Next() returned true for frame %d err:%s", i.Frame(), i.Error())
|
||||
n++
|
||||
frame := i.Frame()
|
||||
img := i.Image()
|
||||
log.Printf("Frame %d: Img:%T img.bounds=%#v duration=%s", frame, img, img.Bounds(), i.Duration())
|
||||
// write out to testdata/%d.png
|
||||
if img != nil {
|
||||
err = SavePNG(img, fmt.Sprintf("testdata/%d.png", frame))
|
||||
if err != nil {
|
||||
t.Errorf("SavePNG() error = %v", err)
|
||||
}
|
||||
} else {
|
||||
log.Printf("No image at frame %d", frame)
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user