Swift - 调整图像 iMessage 应用程序的大小
Swift - resize image iMessage app
我正在制作一个 iMessage 应用程序,其中包含自定义表情符号等键盘应用程序的图像。我在我的 iMessage 故事板上设置了插座并连接了按钮。在我的 MessageViewController 中,我的 IBOulet 中有以下代码。我想将图像调整得更小,但我似乎无法弄清楚这一点。非常感谢任何帮助!
@IBAction func button(_ sender: Any) {
label.text = "button pressed"
let layout = MSMessageTemplateLayout()
layout.image = UIImage(named: "270a.png")
let message = MSMessage()
message.layout = layout
activeConversation?.insert(message, completionHandler: nil)
}
当您将图像添加到消息模板时,您可以请求宽度和高度,但它会将图像放大或缩小(根据纵横比)到它认为最佳的尺寸。
如果您拥有的图像资源不是您想要的大小,您可以尝试在内存中创建一个新图像,但MSMessageTemplateLayout
会根据需要对其进行修改。
let original = UIImage(named: "background")
// use CGContext to create new image in memory
// 10 x 10 is super small, so messages app will scale this up
let image = CGSize(width: 10, height: 10).image { context, frame in
original?.draw(in: frame, blendMode: .luminosity, alpha: 1)
}
let message = MSMessage()
let layout = MSMessageTemplateLayout()
layout.image = image
message.layout = layout
self.activeConversation?.insert(message, completionHandler: nil)
我喜欢使用这个扩展来简化 CGContext 的工作:
https://gist.github.com/mathewsanders/94ed8212587d72684291483905132790
我正在制作一个 iMessage 应用程序,其中包含自定义表情符号等键盘应用程序的图像。我在我的 iMessage 故事板上设置了插座并连接了按钮。在我的 MessageViewController 中,我的 IBOulet 中有以下代码。我想将图像调整得更小,但我似乎无法弄清楚这一点。非常感谢任何帮助!
@IBAction func button(_ sender: Any) {
label.text = "button pressed"
let layout = MSMessageTemplateLayout()
layout.image = UIImage(named: "270a.png")
let message = MSMessage()
message.layout = layout
activeConversation?.insert(message, completionHandler: nil)
}
当您将图像添加到消息模板时,您可以请求宽度和高度,但它会将图像放大或缩小(根据纵横比)到它认为最佳的尺寸。
如果您拥有的图像资源不是您想要的大小,您可以尝试在内存中创建一个新图像,但MSMessageTemplateLayout
会根据需要对其进行修改。
let original = UIImage(named: "background")
// use CGContext to create new image in memory
// 10 x 10 is super small, so messages app will scale this up
let image = CGSize(width: 10, height: 10).image { context, frame in
original?.draw(in: frame, blendMode: .luminosity, alpha: 1)
}
let message = MSMessage()
let layout = MSMessageTemplateLayout()
layout.image = image
message.layout = layout
self.activeConversation?.insert(message, completionHandler: nil)
我喜欢使用这个扩展来简化 CGContext 的工作: https://gist.github.com/mathewsanders/94ed8212587d72684291483905132790