-- Convert from RGBA or RGB (does nothing in that case)
toRGB :: (Source r e, Num e) => Array r DIM3 e -> Array D DIM3 e
toRGB img = 
  let (Z :. width :. length :. depth) = extent img
  in case depth of
    3 -> map id img
    4 -> fromFunction (Z :. width :. length :. 3) f
    where
      f (Z :. j :. i :. k) = img ! (Z :. j :. i :. k)
toRGB :: (Source r e, Num e) => Array r DIM3 e -> Array D DIM3 e
toRGB img = 
  let (Z :. width :. length :. depth) = extent img
  in case depth of
    3 -> map id img
    4 -> fromFunction (Z :. width :. length :. 3) f
    where
      f (Z :. j :. i :. k) = img ! (Z :. j :. i :. k)
toRGB img = 
  let (Z :. width :. length :. depth) = extent img
  in case depth of
    3 -> map id img
    4 -> fromFunction (Z :. width :. length :. 3) f
    where
      f (Z :. j :. i :. k) = img ! (Z :. j :. i :. k)