Поворот изображения, хранящегося в песочнице - PullRequest
0 голосов
/ 10 августа 2011

Я хочу повернуть изображение и сохранить, чтобы перейти в песочницу, но песочница в направлении картинки не изменилась.Зачем?Эксперт, пожалуйста, спасибо!

Ниже приведен код поворота:

-(void)leftRotate
{
        switch (i%4)
    {
        case 0:
            myImageView.image = [UIImage imageWithCGImage:myImageView.image.CGImage scale:1 orientation:UIImageOrientationUp];

            break;
        case 1:
            myImageView.image = [UIImage imageWithCGImage:myImageView.image.CGImage scale:1 orientation:UIImageOrientationLeft];

            break;
        case 2:
            myImageView.image = [UIImage imageWithCGImage:myImageView.image.CGImage scale:1 orientation:UIImageOrientationDown];

            break;
        case 3:
            myImageView.image = [UIImage imageWithCGImage:myImageView.image.CGImage scale:1 orientation:UIImageOrientationRight];

            break;

        default:
            break;
    }
    ++i;
}

Вот код для сохранения изображения в песочнице:

-(void)save:(id)sender
{
    NSDate *date=[NSDate date];

    NSLog(@"%@",date);
    NSCalendar *calendar=[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSInteger unitFlags=NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit|NSSecondCalendarUnit;
    NSDateComponents *component=[calendar components:unitFlags fromDate:date];
    int year=[component year];
    int month=[component month];
    int day=[component day];
    int h=[component hour];
    int m=[component minute];
    int s=[component second];
    fileName=[NSString stringWithFormat:@"%d-%d-%d_%d:%d:%d.png",year,month,day,h,m,s];
    NSLog(@"%@",fileName);
    NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *path=[paths objectAtIndex:0];
    NSLog(@"path:%@",path);
    filePath=[path stringByAppendingPathComponent:fileName];
    NSLog(@"filePath:%@",filePath); 
    NSData *data=[NSData dataWithData:UIImagePNGRepresentation(myImageView.image)];
    [data writeToFile:filePath atomically:YES];       
}

1 Ответ

1 голос
/ 02 июля 2012

PNG-файлы не поддерживают флаг поворота (который просто сохраняется в метаданных файла, пиксели не изменяются).Вам нужно сохранить изображение в формате JPEG, чтобы повернуть его таким образом, или повернуть фактические данные пикселей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...