1

我正在使用 DevIL 库来读取和写入图像。问题是如果文件已经存在,我想覆盖它。

这是我的代码:

(RGB v) <- runIL $ readImage "/foo/foo.png"
let rotated = (computeS $ batman v) :: Array F DIM3 Word8
runIL $ writeImage ("/foo/foo.png") (RGB rotated)

我怎样才能做到这一点?我可以这样做还是必须考虑其他方式?它是操作系统的东西吗?

我将该文件用作临时图像,直到用户决定保存它(经过一些更改,如旋转、扩展等)。

4

1 回答 1

0

如果库不允许您直接替换现有文件,您可以doesFileExist在保存新文件之前检查该文件是否存在并删除它。

replace = do    
  let fn = "path/to/image/file/..."
  exists <- doesFileExist fn
  when exists $ removeFile fn
  runIL $ writeImage fn (RGB rotated)
于 2017-07-31T23:35:58.393 回答