我正在读取一个pgm文件,以便对它应用一些过滤器并将结果重写为一个新的pgm文件。但是,我总是最终得到一个二进制文件(vim没有显示值,但像^ G ^ 0 ^ K等东西,文件命令告诉我它是一个数据文件而imagemagick无法打开文件)
我写入文件的代码如下所示:
fd,err := os.Create(filename)
wr := bufio.NewWriter(fd)
//img is of type [][]int and holds the values to be written
str := "P2\n" + filename + "\n" + string(len(img[0])) + ...
if _,err := wr.WriteString(outStr); err != nil {..}
然后在我通过img数组的循环中再做一些。
我在这里缺少什么?
答案 0 :(得分:4)
string(len(img[0]))
不会做你想做的事情。您需要strconv.Itoa
string(len(img[0]))
正在创建单个字符串,其中包含len(img[0])
的Unicode代码点中的任何一个字符(请参阅the spec section on conversions)