- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
因此众所周知,苹果的 unicode 表情支持图像可以在高达 160x160 像素的分辨率下提取。有一个工具可以在 OS X 上通过从“apple color emoji”字体中提取数据来做到这一点:https://github.com/tmm1/emoji-extractor
我有兴趣在 iOS 上以类似的方式提取/利用苹果的表情符号图像,我找到了以下解决方案并且非常喜欢这里的实现:https://stackoverflow.com/a/38809531/4556704
extension String {
func image() -> UIImage {
let size = CGSize(width: 30, height: 35)
UIGraphicsBeginImageContextWithOptions(size, false, 0);
UIColor.whiteColor().set()
let rect = CGRect(origin: CGPointZero, size: size)
UIRectFill(CGRect(origin: CGPointZero, size: size))
(self as NSString).drawInRect(rect, withAttributes: [NSFontAttributeName: UIFont.systemFontOfSize(30)])
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}
但是,我在使用此实现时遇到了一个问题。如果我使用上面的字符串扩展名,很明显结果图像的分辨率不是 160x160 像素。我的意思是,如果我要在我的项目 Assets 中包含一张 160x160 的图像,我无法生成质量相当的图像。
这是什么原因,我可以在不向我的项目导入超过 1700 个表情符号图像的情况下解决这个问题吗?我认为 iOS 上的字体必须仍然包含生成 160x160 图像样本所需的数据。字符串扩展非常理想,因为它允许我比简单地导入所有这些图像更自由地引用表情符号字符。
我认为这可能需要一些低级代码,这可能比它的值(value)更麻烦,但我真的很想知道更多关于这个问题的根源和可能的修复方法。我确信这归因于苹果没有以高于必要的水平呈现表情符号,但肯定有某种方法可以覆盖它。我也知道还有其他高分辨率的表情符号图像集,这个问题与此无关。
编辑 2016 年 10 月 18 日:我得出的结论是,这个问题可以归因于这样一个事实,即被采样的源图像不是假定可能的最高分辨率。表情符号似乎没有以高于 48x48 像素的分辨率呈现,当已经证明表情符号图像可以在 OS X 上呈现高达 160x160 像素时,并且可以从“Apple Color Emoji.ttf/.ttc”中提取"为 160x160 像素。我不确定这个问题是否有可能的解决方案,因为这似乎是 iOS 使用映射到 png 图像数据的 unicode 字符代码的方式强加的硬性限制。
最佳答案
您的问题是您采用了特定字体大小的字符串,然后将其强制放入另一个特定大小的区域。两者可能不匹配,导致绘制的图像被缩放以适合。
要么计算给定字符串和字体所需的大小,要么计算所需的字体大小以使给定字符串适合分配的大小。
关于ios - 使用扩展/UIgraphicscontext 将表情符号(字符串)呈现为 iOS 中可能的最高分辨率图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40090668/
您好 在我的应用程序中,我有一个函数可以获取当前 View 的图像并将其转换为模糊图像,然后将其添加到 current.view。尽管我使用 [remove from superview] 删除了 V
我见过很多示例,其中一些示例从输入 UIImage 获得修改后的新 UIImage。看起来像: - (UIImage *)imageByDrawingCircleOnImage:(UIImage *)
我的问题如下。我目前正在将 UILabels 绘制到图形上下文( Canvas )上并将它们放置在我喜欢的位置。图形上下文基本上是我在其上绘制标签的 png 图像。这种方法非常有效,因为我不必担心不同
我有这段代码可以将我的图像调整为缩略图: //MAKE THUMBNAIL CGSize origImageSize = chosenImage.size; //the rectang
因此众所周知,苹果的 unicode 表情支持图像可以在高达 160x160 像素的分辨率下提取。有一个工具可以在 OS X 上通过从“apple color emoji”字体中提取数据来做到这一点:
我是一名优秀的程序员,十分优秀!