12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package main
- import (
- "fmt"
- "image"
- "image/color"
- "image/gif"
- "log"
- )
- func main() {
- var (
- err error
- gif *gif.GIF
- size image.Point
- pix color.Color
- r uint32
- g uint32
- b uint32
- hits uint32
- total_hits uint64
- )
- /*
- err = GrabPascoGif()
- if err != nil {
- log.Panic("GrabPascoGif() >", err)
- }
- err = GrabCentralFloridaGif()
- if err != nil {
- log.Panic("GrabCentralFloridaGif() >", err)
- }
- */
- gif, err = DecodeGif("pasco.gif")
- if err != nil {
- log.Panic("DecodeGif(\"pasco.gif\") >", err)
- }
- total_hits = 0
- for frame_num, frame := range gif.Image {
- size = frame.Bounds().Size()
- hits = 0
- for y := range make([]byte, size.Y) {
- for x := range make([]byte, size.X) {
- pix = frame.At(x, y)
- r, g, b, _ = pix.RGBA()
- r /= 255
- g /= 255
- b /= 255
- // Now to determine if this pixel is considerable as rain
- if r <= 140 && g >= 120 && b <= 140 {
- //fmt.Printf("{(%d, %d) [%d, %d, %d]} ", x, y, r, g, b)
- frame.Set(x, y, color.RGBA{R: 255, G: 0, B: 0, A: 255})
- hits += 1
- }
- }
- }
- fmt.Printf("%s-%d: %d hits\r\n", "pasco.gif", frame_num, hits)
- total_hits += uint64(hits)
- }
- fmt.Printf("%s: %d total hits\r\n", "pasco.gif", total_hits)
- err = EncodeGif("out", gif)
- if err != nil {
- log.Panic("EncodeGif(\"out\", gif) >", err)
- }
- /*
- err = EncodeGif("out", gif, true)
- if err != nil {
- log.Panic("EncodeGif(\"out\", gif, true) >", err)
- }
- */
- }
|