Piksel rengini kaydetmek için aynıysa, karşılaştırmak istediğim 2 fotoğrafım var. Bu UIImage
uzatma işlevi tarafından pikselin rengini tespit:Swift - Renkleri CGPoint ile karşılaştır
func getPixelColor(pos: CGPoint) -> ??? {
let pixelData = CGDataProviderCopyData(CGImageGetDataProvider(self.CGImage))
let data: UnsafePointer<UInt8> = CFDataGetBytePtr(pixelData)
let pixelInfo: Int = ((Int(self.size.width) * Int(pos.y)) + Int(pos.x)) * 4
let r = CGFloat(data[pixelInfo])/CGFloat(255.0)
let g = CGFloat(data[pixelInfo+1])/CGFloat(255.0)
let b = CGFloat(data[pixelInfo+2])/CGFloat(255.0)
let a = CGFloat(data[pixelInfo+3])/CGFloat(255.0)
return ???
}
, resimden 1 tarayıcıyı çalıştırın ve bir dizi kaydetmek? Ya da sözlük? Ve bundan sonra tarayıcıyı resim 2 üzerinde çalıştırıyorum ve 2 resimden bilgi aldığımda, hangi fonksiyonla karşılaştırmalıyım?
Hangi CGPoint piksel renkleri 2 resimden aynı olduğunu görmek istiyorum?
GÜNCELLEME: beni dönmek için getPixelColor güncellemek "(poz) (r) (g), (b) (a)" ve bundan sonra ben SİZE ZORUNDA Bu fonksiyonu kullanmadan önce (sadece çiftleri sol bu işlevi yarattı. sort() ARRAY)
extension Array where Element : Equatable {
var duplicates: [Element] {
var arr:[Element] = []
var start = 0
var start2 = 1
for _ in 0...self.count{
if(start2<self.count){
if(self[start] == self[start2]){
if(arr.contains(self[start])==false){
arr.append(self[start])
}
}
start+=1
start2+=1
}
}
return arr
}
}
Bu bana böyle bir şey döndürür:! "(609,0, 47,0) 1.01.01.01.0" Ben rengi bu noktada siyah olduğunu biliyoruz yapmam x-536 için iPhone 5 ekranına sığdırdığımda ve tekrar çizme girişiminde bulunduğumda yanlış bir şey çiziyor ... belki de düzgün yapamam .. yardım?
dönüşü bir 'UIColor' ve bunlar eşittir olup olmadığını kontrol? Renkler arasındaki farkın, birçok farklı yaklaşımla tartışılan bir konu olduğunu unutmayın. – Larme
ayrıca - her bir pikseli mi kontrol ediyorsunuz? Bu resimleri tarıyorsanız, her bir boyutta 1/255 değerine kadar her rengi doğru taramayı düşünmeden önce bile pikselleri mükemmel hale getirme şansınız olduğunu düşünmüyorum. – Russell
UIColor, protokolde yıkanabilir ... Piksellerden bazıları% 100 özdeş, hangi CGPoint'in aynı olduğunu görmek istiyorum ... –