30 lines
1.2 KiB
Swift
30 lines
1.2 KiB
Swift
//
|
|
// 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
|
|
}
|
|
}
|