【问题】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'被转换。

 

posted @ 2020-07-09 11:45  yumenosakura  阅读(1245)  评论(0编辑  收藏  举报