2017-01-10 17 views
2

私の目標は、png画像から白い背景を削除することです。なぜcgimage.copyはswift 3で常にnilを返しますか?

最初に、私はpngを使用して削除する白い背景を持っています。

ここに私のコードです。

... 
let imageRef = self.imageView.image?.cgImage?.copy(maskingColorComponents:[222,255,222,255,222,255,222,255]) 
self.imageView.image = UIImage(cgImage: imageRef, scale: self.imageView.image?.scale, orientation: self.imageView.image.imageOrientation) 
... 

これはうまくいきます。

そして私は画像を編集し、蛇口コードを使って編集した画像を受け取りました。

... 
UIGraphicsBeginImageContext(self.imageView.image.frame.size) 
self.imageView.layer.render(in: UIGraphicsGetCurrentContext()!) 
self.imageView.image = UIGraphicsGetImageFromCurrentImageContext() 
UIGraphicsEndImageContext() 
let imageRef = self.imageView.image?.cgImage?.copy(maskingColorComponents:[222,255,222,255,222,255,222,255]) 
// imageRef is always nil ??? 
self.imageView.image = UIImage(cgImage: imageRef, scale: self.imageView.image?.scale, orientation: self.imageView.image.imageOrientation) 

...

は今のところ、私は正常に編集した画像を得ました。

次に、白い背景を削除するコードを追加しましたが、常にゼロになりました。

この問題を解決する方法はありますか?

答えて

関連する問題