Я использовал UIBezierPath для обрезки части изображения размером 1920 * 1080, отбрасывая 1/3 его (слева). Я хочу, чтобы левый 2/3 шаг влево, чтобы выравнивание по левому краю слева на борту образа, я попробовал:как перемещать содержимое uiimage в определенном направлении
-(UIImage*)leftAlignmentLeftTrapezoided:(UIImage*) image{
// extract each half as a CGImage
CGImageRef imageRight = CGImageCreateWithImageInRect([image CGImage],CGRectMake(self.size.width/3, 0, self.size.width,self.size.height));
UIGraphicsBeginImageContextWithOptions(CGSizeMake(self.size.width/3,self.size.height),NO, 0);
CGContextRef con = UIGraphicsGetCurrentContext();
CGContextDrawImage(con,CGRectMake(0,0,self.size.width*2/3.0,self.size.height), imageRight);
UIImage* im = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return im;
/*
*/
};
согласно http://www.apeth.com/iOSBook/ch15.html, но это не сработало
большого спасибо. Я нашел метод http://iphonedevelopment.blogspot.sg/2010/11/drawing-part-of-uiimage.html. две строки кода очень важны: // Позаботьтесь о инверсии по оси Y, переведя контекст на ось y CGContextTranslateCTM (контекст, 0, drawRect.origin.y + fromRect.size.height); // Масштабирование -1.0 по оси y для перевертывания CGContextScaleCTM (контекст, 1.0, -1.0); – user3898153