2016-04-07 15 views
0

Ich versuche UIColor auf bestimmte (X, Y) Position UIImage zu platzieren,Wie platziere ich den `UIColor` auf` UIImage` an einer bestimmten (X, Y) Position?

aber nicht in der Lage, es zu bekommen,

Hier sieht Ihr Code wie unten,

Below Methode mir zurück ein UIColor von bestimmten (X, Y) Position UIImage

- (UIColor *)isWallPixel:(UIImage *)image xCoordinate:(int)x yCoordinate:(int)y { 

    CFDataRef pixelData = CGDataProviderCopyData(CGImageGetDataProvider(image.CGImage)); 
    const UInt8* data = CFDataGetBytePtr(pixelData); 

    int pixelInfo = ((image.size.width * y) + x) * 4; // The image is png 

    UInt8 red = data[pixelInfo];   // If you need this info, enable it 
    UInt8 green = data[(pixelInfo + 1)]; // If you need this info, enable it 
    UInt8 blue = data[pixelInfo + 2]; // If you need this info, enable it 
    UInt8 alpha = data[pixelInfo + 3];  // I need only this info for my maze game 
    CFRelease(pixelData); 

    UIColor* color = [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.0f]; // The 

    return color; 
} 


//Original Image, I get image pixels from this image. 
UIImage* image = [UIImage imageNamed:@"plus.png"]; 

//Need convert Image 
UIImage *imagedata = [[UIImage alloc]init]; 

//size of the original image 
int Width = image.size.width; 
int height = image.size.height; 

//need to get this size of another blank image 
CGRect rect = CGRectMake(0.0f, 0.0f, Width, height); 

UIGraphicsBeginImageContext(rect.size); 
CGContextRef context = UIGraphicsGetCurrentContext(); 

for (int i = 0; i <Width; i++) { 
    for (int j = 0; j < height; j++) { 

     //Here I got the Image pixel color from below highlighted method 
     UIColor *colordatra = [self isWallPixel:image xCoordinate:i yCoordinate:j]; 
     CGContextSetFillColorWithColor(context, [colordatra CGColor]); 

     rect.origin.x = i; 
     rect.origin.y = j; 
     CGContextDrawImage(context, rect, imagedata.CGImage); 
     imagedata = UIGraphicsGetImageFromCurrentImageContext(); 
    } 
} 

UIGraphicsEndImageContext(); 

Bitte beachten Sie, dass ich auf die Funktionalität wollen wie die UIColor f erhalten aus einer bestimmten Position und platziert diese UIColor auf ein anderes leeres Bild an der gleichen Position.

Mit obigen Code kann ich das nicht bekommen, bitte lassen Sie mich wissen, wo ich den Fehler gemacht habe.

Hoffnung, für positive Antwort,

Vielen Dank im Voraus.

Antwort

0

Durch die Verwendung von UIView Sie dieses wie that.Actually tun können Sie bekommen, x, y, Breite und Höhe

uiview *view = [uiview alloc]initwithframe:CGRectMake(x,y,width,height); 
view.backgroundcolor =[UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.0f]; 
[self.YourImageView addsubview:view];