para - Superponer una imagen sobre otra imagen en iOS
importar fotos de iphone a pc (4)
Aquí esta lo que hice. La cameraImg es la imagen que recibo de la cámara y las otras tres imágenes son imágenes estáticas que he mostrado en la cameraImg. En este caso, el tamaño define, el tamaño para el contexto que vamos a comenzar. Las imágenes se dibujan en el rect definido por el método DrawInRect. Asegúrate de terminar el contexto y listo.
UIImage *cameraImg = image;
UIImage *leftImg = [UIImage imageNamed:@"apple.jpeg"];
UIImage *rightImg = [UIImage imageNamed:@"Cloud.png"];
UIImage *middleImg = [UIImage imageNamed:@"mario.jpeg"];
CGSize size = CGSizeMake(cameraImg.size.width, cameraImg.size.height);
UIGraphicsBeginImageContext(size);
[cameraImg drawInRect:CGRectMake(0, 0, self.view.window.frame.size.width, self.view.window.frame.size.height)];
[leftImg drawInRect:CGRectMake(x, y, width, height)];
[rightImg drawInRect:CGRectMake(x, y, width, height)];
[middleImg drawInRect:CGRectMake(x, y, width, height)];
UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0,finalImage.size.width, finalImage.size.height)];
imageView.image = finalImage;
[self.view addSubview:imageView];
Estoy mostrando imágenes en miniatura de YouTube en mi aplicación iOS. que al hacer clic, irá a youtube.
Necesito una forma de superponer un botón de reproducción en esas imágenes. ¿Cuál podría ser la forma más directa de hacerlo?
Además, las imágenes se cargan de forma remota en una tabla, por lo que el rendimiento es una consideración importante
Si le preocupa el rendimiento de desplazamiento de la tabla, recupere la miniatura y pinte el botón de reproducción sobre ella.
+(UIImage*) drawImage:(UIImage*) fgImage
inImage:(UIImage*) bgImage
atPoint:(CGPoint) point
{
UIGraphicsBeginImageContextWithOptions(bgImage.size, FALSE, 0.0);
[bgImage drawInRect:CGRectMake( 0, 0, bgImage.size.width, bgImage.size.height)];
[fgImage drawInRect:CGRectMake( point.x, point.y, fgImage.size.width, fgImage.size.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Versión Swift 2.2
static func drawImage(image foreGroundImage:UIImage, inImage backgroundImage:UIImage, atPoint point:CGPoint) -> UIImage{
UIGraphicsBeginImageContextWithOptions(backgroundImage.size, false, 0.0)
backgroundImage.drawInRect(CGRectMake(0, 0, backgroundImage.size.width, backgroundImage.size.height))
foreGroundImage .drawInRect(CGRectMake(point.x, point.y, foreGroundImage.size.width, foreGroundImage.size.height))
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}
Swift 3.x
func drawImage(image foreGroundImage:UIImage, inImage backgroundImage:UIImage, atPoint point:CGPoint) -> UIImage {
UIGraphicsBeginImageContextWithOptions(backgroundImage.size, false, 0.0)
backgroundImage.draw(in: CGRect.init(x: 0, y: 0, width: backgroundImage.size.width, height: backgroundImage.size.height))
foreGroundImage.draw(in: CGRect.init(x: point.x, y: point.y, width: foreGroundImage.size.width, height: foreGroundImage.size.height))
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage!
}