mirror of
https://github.com/jehiah/TrafficSpeed.git
synced 2025-09-28 05:02:11 +08:00
51 lines
1019 B
Go
51 lines
1019 B
Go
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)
|
|
}
|
|
}
|
|
}
|