Estás en: Trato de imagenes

Trato de imagenes

Para dar las gracias debes entrar o registrarte en el foro

iMiembro 2G
iMiembro 2G
Mensajes: 27 Agradecido: 0
27 Jun 2013, 12:23# 1

Buenos dias, tengo bastantes problemas con lo que estoy haciendo:

Tengo UIImages y las pinto en un lienzo que es un view, y esas imagenes me gustaría rotarlas,escalarlas, moverlas y voltearlas. Tengo todo bien menos rotarlas.

para rotarlas uso alguna función que encontre en internet, la imagen rota bien pero se queda como dibujada en un cuadrado y se me ocultan partes, es decir tengo como un rectángulo y dentro la imagen y si la roto la imagen se rota, el rectángulo no y hay partes de la imagen que no se ven porque las corta este rectángulo, Tambien he rotado dicho rectangulo (Ahora pondre el codigo de todo) pero se me deforma la imagen. alguien que sepa me pueda echar un cable?

CODIGO:
Rotar imagen:

Código: Seleccionar todo
- (UIImage *)scaleAndRotateImage:(CGFloat)radians withImage:(UIImage*)image {
   
    CGSize size =  CGSizeMake(image.size.width, image.size.height);
    UIGraphicsBeginImageContext(size);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(ctx, image.size.width/2, image.size.height/2);
    CGContextRotateCTM(ctx, radians);
   CGContextDrawImage(UIGraphicsGetCurrentContext(),CGRectMake(-[image size].width/2,-[image size].height/2,size.width, size.height),image.CGImage);
    UIImage *i = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return i;
}


Rotar Rectangulo:

Código: Seleccionar todo
- (CGRect) getBoundingRectAfterRotation: (CGRect) rectangle byAngle: (CGFloat) angleOfRotation {
    // Calculate the width and height of the bounding rectangle using basic trig
    CGFloat newWidth = rectangle.size.width * fabs(cosf(angleOfRotation)) + rectangle.size.height * fabs(sinf(angleOfRotation));
    CGFloat newHeight = rectangle.size.height * fabs(cosf(angleOfRotation)) + rectangle.size.width * fabs(sinf(angleOfRotation));
   
    // Calculate the position of the origin
    CGFloat newX = rectangle.origin.x + ((rectangle.size.width - newWidth) / 2);
    CGFloat newY = rectangle.origin.y + ((rectangle.size.height - newHeight) / 2);
   
    // Return the rectangle
    return CGRectMake(newX, newY, newWidth, newHeight);
}
Gracias  
Etiquetado en:
Publicidad
Publicidad