2016-07-06 10 views
0

Ich frage mich, ob man über ein Rechteck aus dem Bild unten erstellen, um die seltsamen Ecken zu beseitigen:von UIImage erstellen Rechteck

Rectangle

Eingangsbild:

<UIImage>, {1334, 955} 

Dies ist, was ich Bisher:

int croppingNumber = 50; 

CGRect croprect = CGRectMake(croppingNumber, imageToCrop.size.height - croppingNumber, imageToCrop.size.width - croppingNumber, imageToCrop.size.height - croppingNumber); 

// Draw new image in current graphics context 
CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], croprect); 

// Create new cropped UIImage 
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef]; 

NSLog(@"cropped is: %@",croppedImage); 

CGImageRelease(imageRef); 

Ergebnis von Code oben:

cropped is: <UIImage:>, {1338, 50} 

Antwort

0

Sie müssen sich für genug Platz, damit das Recht & Boden zu bedecken, so multiplizieren Sie Ihre croppingNumber von 2. Andernfalls die 50 Punktverschiebung nach rechts/unten werden nur Ihren Platz in den Boden schiebt am weitesten rechts stehenden Ecke.

// Create rectangle from middle of current image 
CGFloat croppingNumber = 50.0; 
CGRect cropRect = CGRectMake(croppingNumber, croppingNumber, imageToCrop.size.width - (croppingNumber * 2), imageToCrop.size.height - (croppingNumber * 2)); 

// Draw new image in current graphics context 
CGImageRef imageRef = CGImageCreateWithImageInRect(imageToCrop.CGImage, cropRect); 

// Create new cropped UIImage 
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef]; 

NSLog(@"cropped is: %@",croppedImage); 

CGImageRelease(imageRef); 

Für jedermann auf diese in die Zukunft, ich das Bild unten bin auch, der die Koordinaten zeigt, nachdem die neue rect angewendet wird. Dies sollte helfen zu visualisieren, was vor sich geht.

enter image description here

+0

Schön! Danke –

+0

Kein Problem. Ich fügte das Bild auch hinzu, um das Endergebnis sichtbar zu machen. – CodeBender