Вращение UIImage в iPhone - PullRequest
       27

Вращение UIImage в iPhone

0 голосов
/ 12 марта 2012

У меня проблема Когда я получаю изображение с камеры iPhone. Я могу получить это во всех направлениях, таких как LeftLandscape, RightLandscape, Portrait и Portrait.

Теперь, как я могу повернуть изображение, полученное от делегатов камеры, только в одну ориентацию, т.е. только в книжной или альбомной ориентации

Кто-нибудь может помочь?

Ответы [ 3 ]

1 голос
/ 12 марта 2012

Попробуйте это ...

CGSize size =  sizeOfImage;
UIGraphicsBeginImageContext(size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextRotateCTM(ctx, angleInRadians);
CGContextDrawImage(UIGraphicsGetCurrentContext(),
  CGRectMake(0,0,size.width, size.height),
  image);

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;

Также обратитесь по этой ссылке ... это поможет вам ...

http://www.platinumball.net/blog/2009/03/30/iphone-uiimage-rotation-and-mirroring/

0 голосов
/ 12 марта 2012

Попробуйте это. Будет полезно

   -(UIImage *)resizeImage:(UIImage *)image {

CGImageRef imageRef = [image CGImage];
CGImageAlphaInfo alphaInfo = CGImageGetAlphaInfo(imageRef);
CGColorSpaceRef colorSpaceInfo = CGColorSpaceCreateDeviceRGB();

if (alphaInfo == kCGImageAlphaNone)
    alphaInfo = kCGImageAlphaNoneSkipLast;

int width, height;

width = 640;//[image size].width;
height = 640;//[image size].height;

CGContextRef bitmap;

if (image.imageOrientation == UIImageOrientationUp | image.imageOrientation == UIImageOrientationDown) {
    bitmap = CGBitmapContextCreate(NULL, width, height, CGImageGetBitsPerComponent(imageRef), CGImageGetBytesPerRow(imageRef), colorSpaceInfo, alphaInfo);

} else {
    bitmap = CGBitmapContextCreate(NULL, height, width, CGImageGetBitsPerComponent(imageRef), CGImageGetBytesPerRow(imageRef), colorSpaceInfo, alphaInfo);

}

if (image.imageOrientation == UIImageOrientationLeft) {
    NSLog(@"image orientation left");
    CGContextRotateCTM (bitmap, radians(90));
    CGContextTranslateCTM (bitmap, 0, -height);

} else if (image.imageOrientation == UIImageOrientationRight) {
    NSLog(@"image orientation right");
    CGContextRotateCTM (bitmap, radians(-90));
    CGContextTranslateCTM (bitmap, -width, 0);

} else if (image.imageOrientation == UIImageOrientationUp) {
    NSLog(@"image orientation up"); 

} else if (image.imageOrientation == UIImageOrientationDown) {
    NSLog(@"image orientation down");   
    CGContextTranslateCTM (bitmap, width,height);
    CGContextRotateCTM (bitmap, radians(-180.));

}

CGContextDrawImage(bitmap, CGRectMake(0, 0, width, height), imageRef);
CGImageRef ref = CGBitmapContextCreateImage(bitmap);
UIImage *result = [UIImage imageWithCGImage:ref];

CGContextRelease(bitmap);
CGImageRelease(ref);

return result;  
}
0 голосов
/ 12 марта 2012

NYXImagesKit: Handy UIImage Categories

Автор Benjamin Godard

Это удобный набор категорий на UIImage для поворота, изменения размера, фильтрации, улучшения и многого другого вэффективный и простой в использовании способ.Может быть полезно в некоторых ваших приложениях!

...