2012-06-19 4 views
1

the screen image link, the savePic image link, вы можете найти разные между screenImg и savePic. Я установил backgroundImageView очень маленьким png. и я хочу сохранить backgroundimageview для изображения. В iPhone Simulator Screen, край изображения нормальный, но край savePic не ясен. Любой может сказать мне, как сохранить изображение высокой четкости.Как сохранить масштабированный uiimage

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    //_backImgView 320*480 
    self.backImgView.image = [UIImage imageNamed:@"Purple.png"]; 

    [self performSelector:@selector(savePic) withObject:nil afterDelay:0.1]; 
} 

- (void)savePic 
{ 
    BOOL isDir; 
    NSString *dirPath = [NSHomeDirectory() stringByAppendingPathComponent:@"/Documents/Pic"]; 
    NSFileManager *fm = [NSFileManager defaultManager]; 
    if(![fm fileExistsAtPath:dirPath isDirectory:&isDir]){ 
     BOOL bo = [fm createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:nil]; 
     if(!bo){ 
      NSLog(@"-->Create CardSlide Dir Fail!!!"); 
      return; 
     } 
    } 

    UIGraphicsBeginImageContext(_backImgView.bounds.size); 
    //UIGraphicsBeginImageContextWithOptions(_backImgView.bounds.size, _backImgView.opaque, 2.0); 
    CGContextSetAllowsAntialiasing(UIGraphicsGetCurrentContext(), YES); 
    [_backImgView drawRect:_backImgView.bounds]; 
    //[_backImgView.layer renderInContext:UIGraphicsGetCurrentContext()]; 

    UIImage *bgImg = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    NSString *path = [NSString stringWithFormat:@"save_%@.jpg", @"demo"]; 
    NSString *jpgPath = [dirPath stringByAppendingPathComponent:path]; 
    BOOL isSucc = [UIImageJPEGRepresentation(bgImg, 1.0) writeToFile:jpgPath atomically:YES]; 
    NSLog(@"%@ write photo %@!", jpgPath, [email protected]"SUCC":@"FAIL"); 
} 
+1

испуганный? – Krishnabhadra

+0

Или, возможно, масштабируется? : D –

ответ

0

Используя маленькое изображение, невозможно масштабировать его правильный путь к большему изображению, вы всегда будете идти через размытые, шумные изображения, но если у вас изображение может иметь растяжение повторяющихся частей, вы можете растянуть интерьер изображение без создания нового. Есть два API в UIImage называется:
– resizableImageWithCapInsets: (только iOS5)
– stretchableImageWithLeftCapWidth:topCapHeight: (Устаревший в прошивкой 5.0)
Если вы нашли правильную вставку вы можете избежать, чтобы создать новый образ, в основном это та же система используется для создания пузырь в приложении сообщений. Воздушный шар очень маленький, но он имеет растяжимую область, которая поддерживает соотношение сторон.
Поскольку изображение действительно простое, вы также можете подумать, чтобы нарисовать его, используя функции кварца, создающие прямой путь, пути «почти» независимы, просто нужно масштабировать их по правильному размеру.

+0

спасибо за ответ, проблема заключается не в том, как показать небольшое изображение, это как сохранить изображение. Я использую небольшое изображение, потому что только когда я использую небольшое изображение, я могу найти ошибку – avincross

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