2016年5月15日 星期日

解決 CIImage 無法儲存的問題

拼圖畫面已經完成,接著便是拍照畫面的開發工作。當中遇到一個問題,就是從 AVCaptureVideoDataOutput 得來的 CIImage 在轉換成 UIImage 後無法儲存,十分奇怪。圖案明明能顯示到 UIImageView,圖案尺寸正常,理應能順利經 [UIImageJPEGRepresentation(image, 0.9f) writeToFile:filePath atomically:YES] 來儲存。可是實情卻不。找了很久都沒有相關解決方案,於是自行用以下方法處理:
   UIImage *originalImage = [UIImage imageWithCIImage:_originalImage];
   CGSize size = originalImage.size;
   CGFloat scaleFactor = [[UIScreen mainScreen] scale];

   UIGraphicsBeginImageContextWithOptions(size, NO, scaleFactor);
   [originalImage drawInRect:CGRectMake(0, 0, size.width, size.height)];
   UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();

   BOOL result = [UIImageJPEGRepresentation(image, 0.9f) writeToFile:@"image.jpg" atomically:YES];

沒有留言: