0

我正在使用此代码翻转图像。

CGAffineTransform trans = CGAffineTransformScale(imageView.transform, -1, 1);
imageView.transform = trans;  

现在如果我想保存这个翻转的图像我应该怎么做?
我正在使用UIImageWriteToSavedPhotosAlbum(imageView.image, nil, nil, nil);将图像保存在 iphone 库中,但它保存的是原始图像而不是翻转的图像。

欢迎大家提出建议。
感谢您的帮助。

4

2 回答 2

2

正如你正在做的那样,你正在翻转UIImageView它的X-Axisnot UIImage。所以很明显代码会保存你的原始图像。

翻转你的UIImage而不是UIImageView然后保存 -

 UIImage *flippedImage = [UIImage imageWithCGImage:sourceImage.CGImage scale:1.0 orientation: UIImageOrientationUpMirrored];

现在使用您的保存方法 -

UIImageWriteToSavedPhotosAlbum(flippedImage, nil, nil, nil);

编辑:

-(void)tapFlipXPosition:(id)sender
{
    UIImage* sourceImage = yourSourceImage;
    UIImage* flippedImage;

    if(sourceImage.imageOrientation == UIImageOrientationUpMirrored)
    {
       flippedImage = [UIImage imageWithCGImage:sourceImage.CGImage scale:1.0 orientation: UIImageOrientationUp];
    }
    else
    {
        flippedImage = [UIImage imageWithCGImage:sourceImage.CGImage scale:1.0 orientation: UIImageOrientationUpMirrored];
    }

    UIImageWriteToSavedPhotosAlbum(flippedImage, nil, nil, nil);
}
于 2012-09-18T10:04:34.760 回答
-1

使用此代码。首先,您将截取倒置图像的屏幕截图,将其保存到另一个 imageviewView 中,然后将这个特定的“新图像”保存到 PhotoLibrary。

 UIGraphicsBeginImageContext(BaseView.frame.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *attachimage = [[UIImage alloc]initWithData:Data];
    UIImage *viImage=UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    attachimage = viImage;
    UIImageWriteToSavedPhotosAlbum(viImage, nil, nil, nil);
于 2012-09-18T10:03:58.257 回答