2016-10-08 12 views
-2

写真ライブラリに丸い画像を保存します。私は試していますが、保存されたイメージは丸められません。写真に丸みのある画像を保存するには

extension UIImage { 
convenience init(view: UIView) { 
    UIGraphicsBeginImageContextWithOptions(view.frame.size, view.opaque, 0) 

    view.drawViewHierarchyInRect(view.bounds, afterScreenUpdates: true) 

    view.layer.renderInContext(UIGraphicsGetCurrentContext()!) 
    let image = UIGraphicsGetImageFromCurrentImageContext() 

    UIGraphicsEndImageContext() 
    self.init(CGImage: image.CGImage!) 
} 
} 
//calling 
let image = UIImage(view: myView) 
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil) 
+0

この部分のどの部分を丸くする必要がありますか? –

+0

私はUIViewをイメージに変換して、Photosに保存しました。 そして、写真の丸い画像を保存したい –

+1

はい、丸めのコードは書かれていませんか?何を丸め効果を達成しようとしましたか? –

答えて

-1

あなたの拡張機能でこれを試してみてください:

view.layer.cornerRadius = 20.0f; 

あなたは、丸めの異なる大きさを作成するために、値を調整することができます。

+0

ビューを丸くしてみましたが、写真に保存したときに画像が丸くならず、曲線にならない –

+0

はい、そうです。私はUIImageに相当することをする方法があるかどうかを調べようとしています。 –

0

あなただけのギャラリー内の画像を保存することができますが、あなたはそれがラウンドの後のコードの下に表示させる必要があります。

は、画像のラウンドを作るために次の関数を使用します。スウィフトは

:Objective Cの中

func maskRoundedImage(image: UIImage, radius: Float) -> UIImage { 
    var imageView: UIImageView = UIImageView(image: image) 
    var layer: CALayer = CALayer() 
    layer = imageView.layer 

    layer.masksToBounds = true 
    layer.cornerRadius = CGFloat(radius) 

    UIGraphicsBeginImageContext(imageView.bounds.size) 
    layer.renderInContext(UIGraphicsGetCurrentContext()) 
    var roundedImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return roundedImage 
} 

-(UIImage *)makeRoundedImage:(UIImage *) image radius: (float) radius{ 
    CALayer *imageLayer = [CALayer layer]; 
    imageLayer.frame = CGRectMake(0, 0, image.size.width, image.size.height); 
    imageLayer.contents = (id) image.CGImage; 

    imageLayer.masksToBounds = YES; 
    imageLayer.cornerRadius = radius; 

    UIGraphicsBeginImageContext(image.size); 
    [imageLayer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return roundedImage; 
} 

機能が丸みを帯びた画像を返します後、あなたはそれを円形にするためにimagevalueを渡す必要があります。

+0

これは最高の解決策だと私は同意するだろうが、明らかにOPが望んでいるものではない。 –

+0

私はすでにこれを試していますが、動作しません。写真に保存された画像のコーナーの半径はまだありません。私が望むのは、写真の丸い画像を保存することです –

+0

私はあなたがイメージの隅を完全にカットすることはできませんが、これを使用すると暗黙のうちに行うことができますが、まだあなたはあなたのゴールのために行く必要があります私たちも。 – vaibhav

関連する問題