2017-12-16 5 views
0

Ich folgen guide by Alan Donovan und versuchen, GIF zu machen. Aber in der Ausgabe habe ich die ganze Zeit ein unlesbares gif-Bild bekommen. Ich erinnere mich, als ich unter Windows 8.0 war, kann ich dieses Beispiel einfach neu machen, aber heute unter Ubuntu16.04 weiß ich nicht, wo mein Fehler ist und wie ich ihn beheben kann. Mein Code:Wie GIF-Fehler zu debuggen

package main 

import (
    "image/color" 
    "os" 
    "io" 
    "math/rand" 
    "time" 
    "image/gif" 
    "image" 
    "math" 
) 

var palette = []color.Color{color.White, color.Black} 

const (
    whiteIndex = 0 
    blackIndex = 1 
) 

func main() { 
    lissajous(os.Stdout) 
} 

func lissajous(out io.Writer) { 
    const (
     cycles = 5 
     res = 0.001 
     size = 100 
     nframes = 64 
     delay = 8 
    ) 
    rand.Seed(time.Now().UTC().UnixNano()) 
    freq := rand.Float64()*3.0 
    anim := gif.GIF{LoopCount:nframes} 
    phase := 0.0 
    for i := 0; i < nframes; i++ { 
     rect := image.Rect(0, 0, 2*size+1, 2*size+1) 
     img := image.NewPaletted(rect, palette) 
     for t:=0.0; t< cycles*2*math.Pi; t+= res { 
      x:= math.Sin(t) 
      y:= math.Sin(t*freq + phase) 
      img.SetColorIndex(size+int(x*size+0.5), size+int(y*size+0.5), blackIndex) 
     } 
     phase += 0.2 
     anim.Delay = append(anim.Delay, delay) 
     anim.Image = append(anim.Image, img) 
    } 
    gif.EncodeAll(out, &anim) 
} 

Nur vom Buch kopiert. Quelldatei in '~/go/src/learning /'

+1

Woher wissen Sie, dass es ein unlesbares gif ist? Wie testen Sie? Welche genauen Fehlermeldungen erhalten Sie? – Flimzy

+0

mein Problem war, dass ich es im Webbrowser öffnen sollte, und ich versuchte Programme wie Mirage ... T_T –

+0

Ihr Kommentar beantwortet meine Fragen nicht. Welche genaue Fehlermeldung erhalten Sie? – Flimzy

Antwort

2

Öffnen Sie mit der Gif-Datei mit einem GIF-Reader wie Firefox. Zum Beispiel

$ go run lissajous.go > lissajous.gif && firefox lissajous.gif 
+0

wow seine Magie! und warum kann ich es nicht in Programmen wie Mirage öffnen = –