Reputation:
Right below I have 2 buttons. place button needs to be pressed before magicjohnson button or there will be a runtime error.
@IBAction func magicJohnson(_ sender: Any) {
let photo = self.imageV.image
let data = UIImagePNGRepresentation(photo!)
if cdHandler.saveObject(pic: data!){
}}
@IBAction func place(_ sender: Any) {
let image = UIImage.imageWithView(view: theView)
let heart:UIImage = UIImage(named: "words")!
let left:UIImage = image
let newSize2 = CGSize(width: left.size.width, height: left.size.height)
UIGraphicsBeginImageContextWithOptions(newSize2, false, left.scale)
left.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height: newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
heart.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height: newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
imageV.image = newImage
}
How can I get the code to essentially do this/
@IBAction func magicJohnson(_ sender: Any) {
FIRST {
let image = UIImage.imageWithView(view: theView)
let heart:UIImage = UIImage(named: "words")!
let left:UIImage = image
let newSize2 = CGSize(width: left.size.width, height: left.size.height)
UIGraphicsBeginImageContextWithOptions(newSize2, false, left.scale)
left.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height: newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
heart.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height: newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
imageV.image = newImage
}
second{
let photo = self.imageV.image
let data = UIImagePNGRepresentation(photo!)
if cdHandler.saveObject(pic: data!){
}
}}
Upvotes: 0
Views: 43
Reputation: 100503
Try this , declare placeBu
as IBOutlet
@IBAction func magicJohnson(_ sender: Any) {
self.place(self.placeBu) // may be self.place(UIButton()) if you don't care of sender instead of the outlet
let photo = self.imageV.image
let data = UIImagePNGRepresentation(photo!)
if cdHandler.saveObject(pic: data!){
}}
Or
@IBAction func magicJohnson(_ sender: Any) {
if let photo = self.imageV.image
{
let data = UIImagePNGRepresentation(photo!)
if cdHandler.saveObject(pic: data!){
}}
}
}
OR in Interface builder set enabled for magicJohnson
button to false
@IBAction func place(_ sender: Any) {
let image = UIImage.imageWithView(view: theView)
let heart:UIImage = UIImage(named: "words")!
let left:UIImage = image
let newSize2 = CGSize(width: left.size.width, height: left.size.height)
UIGraphicsBeginImageContextWithOptions(newSize2, false, left.scale)
left.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height: newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
heart.draw(in: CGRect(x: 0,y: 0,width: newSize2.width,height: newSize2.height), blendMode:CGBlendMode.normal, alpha:1.0)
let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
imageV.image = newImage
self.magicJohnson.isEnabled = true
}
Upvotes: 1