code: func PictureDataFromImage(img image.Image) *PictureData {
  	rgba := image.NewRGBA(img.Bounds())
  	draw.Draw(rgba, rgba.Bounds(), img, img.Bounds().Min, draw.Src)
  
  	verticalFlip(rgba)
  
  	pd := MakePictureData(R(
  		float64(rgba.Bounds().Min.X),
  		float64(rgba.Bounds().Min.Y),
  		float64(rgba.Bounds().Max.X),
  		float64(rgba.Bounds().Max.Y),
  	))
  
  	for i := range pd.Pix {
  		pd.Pix[i].R = rgba.Pix[i*4+0]
  		pd.Pix[i].G = rgba.Pix[i*4+1]
  		pd.Pix[i].B = rgba.Pix[i*4+2]
  		pd.Pix[i].A = rgba.Pix[i*4+3]
  	}
  
  	return pd
  }
docs: // PictureDataFromImage converts an image.Image into PictureData.
  //
  // The resulting PictureData's Bounds will be the equivalent of the supplied image.Image's Bounds.