выделить часть изображения (вырезать)


person Robin    schedule 09.02.2010    source источник
comment
+1 за отличное объяснение вашего вопроса.   -  person kubilay    schedule 04.09.2012


Ответы (3)


Если вы хотите показать только центр изображения, UIImageView установите режим содержимого на «Формат заливки» через IB. Это отцентрирует его и обрежет все лишнее.

Или в коде

myImageView.contentMode = UIViewContentModeScaleAspectFill;
person Alex Wayne    schedule 09.02.2010

Украл приведенный ниже код из этого вопроса и ищет ответ HitScan.

CGImageRef imageRef = CGImageCreateWithImageInRect([largeImage CGImage], cropRect);
// or use the UIImage wherever you like
[UIImageView setImage:[UIImage imageWithCGImage:imageRef]]; 
CGImageRelease(imageRef);
person willcodejavaforfood    schedule 09.02.2010

См. приведенный ниже код. Здесь я предоставляю изображение и разделяю его на два равных изображения.

- (void)splitImageView:(UIImageView*)imgView{

UIImage *image = imgView.image;
CGRect rectForDrawing = CGRectMake(0, 0, imgView.frame.size.width/2, imgView.frame.size.height);

CGRect leftRect = CGRectMake(0, 0, imgView.frame.size.width/2, imgView.frame.size.height);
CGRect rightRect = CGRectMake(imgView.frame.size.width/2, 0, imgView.frame.size.width/2, imgView.frame.size.height);


CGImageRef leftReference =  CGImageCreateWithImageInRect([image CGImage], leftRect);
CGImageRef rightReference = CGImageCreateWithImageInRect([image CGImage], rightRect);

UIGraphicsBeginImageContextWithOptions(rectForDrawing.size, NO, 0);
    CGContextRef con = UIGraphicsGetCurrentContext();
    CGContextDrawImage(con, rectForDrawing,flip(leftReference));
    imgViewLeft = [[UIImageView alloc] initWithImage:UIGraphicsGetImageFromCurrentImageContext()];
    imgViewLeft.frame = CGRectMake(imgView.frame.origin.x, imgView.frame.origin.y,
                               imgView.frame.size.width/2, imgView.frame.size.height);

    CGContextDrawImage(con, rectForDrawing,flip(rightReference));
    imgViewRight = [[UIImageView alloc] initWithImage:UIGraphicsGetImageFromCurrentImageContext()];
    imgViewRight.frame = CGRectMake(imgView.frame.origin.x+imgView.frame.size.width/2, imgView.frame.origin.y,
                                imgView.frame.size.width/2, imgView.frame.size.height);


UIGraphicsEndImageContext();


[self.view addSubview:imgViewLeft];
[self.view addSubview:imgViewRight]; 
}
person Abhishek Bedi    schedule 04.12.2012