【問題】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'被轉換。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM