我想寫一段代碼,可以告訴CGPoint是否位於圖像的黑色區域內(成功的答案是here)。在我的實現,我可以成功返回的NSLog如果觸摸點是黑色與此代碼:訪問CGImage的起源?
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [[event allTouches] anyObject];
CGPoint point = [touch locationInView:self.view];
UIColor *pixelColor = [self.imageData colorAtPixel:point];
if(pixelColor){
NSLog(@"hit a zone in the black!");
} else {
NSLog(@"no hit!");
}
}
self.imageData
距離self.shapeImage.image.CGImage
一個UIImage imageWithCGImage
。所以這完美的工作,問題是我的CGImage的起源是不正確的。如果我移動我的self.shapeImage
說(500,500),我的測試只產生一個命中,就好像圖像在(0,0)。它好像我需要以某種方式將我的CGImage原點與shapeImage.frame原點正確對齊。
關於如何解決這個問題的任何想法?謝謝