0

我截取了窗口的某个部分的屏幕截图,然后将其缩小并与同样缩小的图像合并。问题是当我转到它的路径时,有一个保存为 0KB 的 PNG 文件,所以图像没有保存。任何的想法?谢谢!

这是我当前的代码:

//Save images
- (void) saveimages {

    //Save small one (mini)
    NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    UIGraphicsBeginImageContextWithOptions((myImageView.bounds.size), NO, 0.5);
    [myImageView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *mini = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    float miniVW = VView.image.size.width / 2;
    float miniVH = VView.image.size.height / 2;
    UIImage *miniV = [self imageWithImage:certain.image convertToSize:CGSizeMake(miniVW, miniVH)];
    UIImage *miniTotal = [self mergeIMG:miniV:mini];
    NSString *pngFilePath = [NSString stringWithFormat:@"%@/mini%i.png",docDir,number];
    NSData *data = [NSData dataWithData:UIImagePNGRepresentation(miniTotal)];
    [data writeToFile:pngFilePath atomically:YES];

}

//Merge two images in one
- (UIImage *) mergeIMG:(UIImage *)VextImg:(UIImage *)VintImg {

    //Create a new image from two
    CGSize newSize = CGSizeMake(VintImg.size.width, VintImg.size.width);
    [VintImg drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
    [VextImg drawInRect:CGRectMake(0, 0, newSize.width, newSize.height) blendMode:kCGBlendModeNormal alpha:1.0];
    UIImage *finalIMG = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return finalIMG;
}

//Scale image
- (UIImage *) imageWithImage:(UIImage *)image convertToSize:(CGSize)size {

    //Change size
    UIGraphicsBeginImageContext(size);
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    UIImage *destImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return destImage;

}
4

1 回答 1

0

mergeImage不打电话UIGraphicsBeginImageContextWithOptions

于 2012-12-30T18:33:22.623 回答