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