2011-08-10 4 views
0

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

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

-(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

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

Смежные вопросы