x###引發(fā)的錯誤的數(shù)據(jù)源
圖片分辨率1280*852, 從相冊導(dǎo)入
錯誤猜想
1、起初以為是導(dǎo)入的圖片在讀取rgba值時的某一個階段可能orientation 有問題,但后來通過每一步都 print(image.orientation.rawValue)
發(fā)現(xiàn)orientation 并沒有問題啊!* Holy Shit!*
2、不符合相機(jī)拍攝的圖片在被縮放后,呈現(xiàn)到屏幕上時的origin
不是0,0。 因此在計算時的范圍會有問題?! 可是截圖是沒有錯!飯后回來在試一試!
3、圖像被過度放大了 導(dǎo)致截圖所獲取的6464圖像實(shí)際上來自于可能是3232像素放大過后的像素?
疑惑
1、在RRView中對partialImage提取的rgba值跟最初提取的值不一樣 而且差的不是一點(diǎn)點(diǎn)
這意味著? 前面的rgba提取的圖像范圍不對?總不可能是圖像提取的函數(shù)出錯了吧?在正常比例的圖像中提取的數(shù)據(jù)是對的,因此這個函數(shù)本身是沒有問題的。所以有可能出錯的地方在...partialIamge
的size
?!
2、在什么情況下, rgb三個數(shù)值的順序會變化? 圖片的格式?! 難道是因?yàn)檫@張圖片是單反拍的?
分析
在ScrollView中圖片zoomScale大于0.25時,也就是過于小的圖片,雖然截取的partialImage是對的,但是partialImage提取的RGB值是錯誤的
在RRView里對一塊紅色partialImage提取的rgb值(也就是對截取好傳遞過來準(zhǔn)備顯示的圖片partialImage)
getting pixel from 0.0, 0.0
data: 36, 43, 116, 255, 36)
r: 140, g: 145 b: 165
顯然rgb值是錯誤的,而且最重要的是, data顯示的是前五個rgba值,也就是說第一個像素的rgba
值應(yīng)該是一個紅色,但卻是 (36,43,116,255)
Ridiculous!
ImageGetBytesPerRow獲得數(shù)據(jù)明顯不對
明天再繼續(xù)研究一下這個函數(shù)!