iPhoneの画面サイズ(329 x 480)で、jpg画像を画面数分書き出してみる。 予め、CGContextRefには描画されていて、ページ数も取得されているものとします。
- (void)exportJPEG:(NSUInteger)pageCount {
context = UIGraphicsGetCurrentContext();
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = [paths objectAtIndex:0];
NSString *fileName;
NSString *filePath;
for (int i=0; i < pageCount; i++) {
fileName = [NSString stringWithFormat:@"page-%d.jpg", i + 1];
filePath = [basePath stringByAppendingPathComponent:fileName];
context = UIGraphicsGetCurrentContext();
CGImageRef imageRef = CGBitmapContextCreateImage(context);
UIImage *image = [UIImage imageWithCGImage:imageRef];
CGRect rect = CGRectMake(i * 320, 0, 320.0, 480.0);
CGImageRef pageImageRef = CGImageCreateWithImageInRect(image.CGImage, rect);
UIImage *pageImage = [UIImage imageWithCGImage:pageImageRef];
CGImageRelease(pageImageRef);
NSData *data = UIImageJPEGRepresentation(pageImage, 0.8);
[data writeToFile:filePath atomically:YES];
}
}
横(landscape)の状態もとれば、横向きでも書き出せますね。