// // NSTextAttachment+Emoji.swift // Tusker // // Created by Shadowfacts on 3/1/20. // Copyright © 2020 Shadowfacts. All rights reserved. // import UIKit extension NSTextAttachment { // Based on https://github.com/ReticentJohn/Amaroq/blob/7c5b7088eb9fd1611dcb0f47d43bf8df093e142c/DireFloof/InlineImageHelpers.m convenience init(emojiImage image: UIImage, in font: UIFont, with textColor: UIColor = .label) { let adjustedCapHeight = font.capHeight - 1 var imageSizeMatchingFontSize = CGSize(width: image.size.width * (adjustedCapHeight / image.size.height), height: adjustedCapHeight) let defaultScale: CGFloat = 1.4 imageSizeMatchingFontSize = CGSize(width: imageSizeMatchingFontSize.width * defaultScale, height: imageSizeMatchingFontSize.height * defaultScale) UIGraphicsBeginImageContextWithOptions(imageSizeMatchingFontSize, false, 0.0) textColor.set() image.draw(in: CGRect(origin: .zero, size: imageSizeMatchingFontSize)) let attachmentImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() self.init() self.image = attachmentImage } }