【问题】Windows(CR LF)和Unix(LF)
问题描述:
在获取一张JPG图片的信息数组后,
再将这些信息存入新建JPG文件,
却发现新建图片异常。
image.jpg为原图
image1.jpg为新建图片
原因:
在Windows环境下,
使用的文件写入函数,
默认情况下会将‘\n’转换为'\r''\n',
导致新建图片数据里多了几个'\r'字符,
所以显示错误。
使用Notepad++的“Show All Characters”功能,
可以查看文件的所有字符。
从图中可以看出,
右下角显示两张图片的换行格式不同,
原图(image.jpg)为Unix(LF),
新建图片(image1.jpg)为Windwos(CR LF)。
第486行可以明显看出,
新建图片比原图多了一个LF('\r')回车字符。
解决办法:
在Windows环境下,
给图片文件存入数据时,
使用二进制格式打开文件,
可以防止'\n'被转换。