2016-07-06 4 views
0

мне было интересно, если его можно создать прямоугольник с картинки ниже, чтобы устранить странные углы:Создать прямоугольник из UIImage

Rectangle

входного изображения:

<UIImage>, {1334, 955} 

Это то, что я до сих пор:

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); 

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

ответ

0

Вы должны обеспечить достаточно пространства, чтобы покрыть дно правой &, поэтому умножьте свой croppingNumber на 2. В противном случае сдвиг 50 точку вправо/вниз будет только толкать квадрат в правом нижнем углу наиболее угол.

// 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); 

Для тех, кто смотрит на это в будущем, я в том числе ниже изображения, которое показывает координаты после того, как новый прямоугольник применяется. Это должно помочь визуализировать происходящее.

enter image description here

+0

Прекрасно! Thanks –

+0

Нет проблем. Я также добавил изображение, чтобы визуализировать конечный результат. – CodeBender

Смежные вопросы