ios objective-c uiimage mask

ios - UIImage seleccionando parte de otro UIImagel



objective-c mask (1)

Puede usar CGImageCreateWithImageInRect () . Puede obtener una CGImage desde un UIImage con la propiedad del mismo nombre .

Básicamente, lo que terminas haciendo es aplicar máscaras a la imagen existente para extraer las partes que necesitas. Al igual que -

myImageArea = CGRectMake(xOrigin, yOrigin, myWidth, myHeight);//newImage mySubimage = CGImageCreateWithImageInRect(oldImage, myImageArea); myRect = CGRectMake(0, 0, myWidth*2, myHeight*2); CGContextDrawImage(context, myRect, mySubimage);

Esta publicación da una buena idea de cómo usar esta propiedad.

Tengo un UIImage y un CGPoint que me dice en qué dirección debería moverlo para crear otra imagen. El fondo puede ser cualquier cosa.

¿Da el UIImage inicial de cómo puedo crear el nuevo? ¿Cuál es la forma más eficiente de hacerlo?

Esto es lo que estoy haciendo:

int originalWidth = image.size.width; int originalHeight = image.size.height; float xDifference = [[coords objectAtIndex:0] floatValue]; float yDifference = [[coords objectAtIndex:1] floatValue]; UIView *tempView = [[UIView alloc] initWithFrame:CGRectMake(0, 240, originalWidth, originalHeight)]; UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; imageView.contentMode = UIViewContentModeTopLeft; CGRect imageFrame = imageView.frame; imageFrame.origin.x = xDifference; imageFrame.origin.y = -yDifference; imageView.frame = imageFrame; UIGraphicsBeginImageContext(tempView.bounds.size); [tempView.layer renderInContext:UIGraphicsGetCurrentContext()]; UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();

¿Hay una versión más óptima?