如何在iOS上将文本转换为图像?

拉撒路

我正在尝试编写一个将文本字段文本转换为图像的函数(示例)。我试图搜索一个示例,大多数示例也覆盖了图像上的文本。有可能给我一些例子或提示如何做吗?

几种方法是可能的。

  1. 如果您有现有的图像UITextFieldUITextView或者UILabel只想将其渲染为图像,则可以采用传统的快照方法,例如:

    - (UIImage *)imageForView:(UIView *)view
    {
        UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0);
    
        if ([view respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)])
            [view drawViewHierarchyInRect:view.bounds afterScreenUpdates:YES];  // if we have efficient iOS 7 method, use it ...
        else
            [view.layer renderInContext:UIGraphicsGetCurrentContext()];         // ... otherwise, fall back to tried and true methods
    
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    
        return image;
    }
    
  2. 如果要使用通用的“从文本创建图像”例程,则在iOS 7中,它看起来像:

    - (UIImage *)imageFromString:(NSString *)string attributes:(NSDictionary *)attributes size:(CGSize)size
    {
        UIGraphicsBeginImageContextWithOptions(size, NO, 0);
        [string drawInRect:CGRectMake(0, 0, size.width, size.height) withAttributes:attributes];
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    
        return image;
    }
    

    上面将创建一个图像,其大小将根据文本而有所不同。显然,如果只需要固定大小的图像,则可以使用constants frame,而不是动态构建它。

    无论如何,您可以这样使用上面的代码:

    NSString *string = @"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
    
    NSDictionary *attributes = @{NSFontAttributeName            : [UIFont systemFontOfSize:20],
                                 NSForegroundColorAttributeName : [UIColor blueColor],
                                 NSBackgroundColorAttributeName : [UIColor clearColor]};
    
    UIImage *image = [self imageFromString:string attributes:attributes size:self.imageView.bounds.size];
    
  3. 如果您需要支持早期的iOS版本,则可以使用以下技术:

    - (UIImage *)imageFromString:(NSString *)string font:(UIFont *)font size:(CGSize)size
    {
        UIGraphicsBeginImageContextWithOptions(size, NO, 0);
        [string drawInRect:CGRectMake(0, 0, size.width, size.height) withFont:font lineBreakMode: NSLineBreakByWordWrapping];
        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    
        return image;
    }
    

这些中的每一个都有很多很多的排列。这仅取决于您要实现的目标。


另一种方法是简单地同时拥有UIImageViewUILabel/UITextView视图对象,如果有从服务器的图像,设置的图像UIImageView和文本,设置text了的UILabel/ UITextView

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在node.js上将文本转换为Base58?

来自分类Dev

如何在iOS上将WAV音频转换为mp3 / ogg?

来自分类Dev

如何在iOS中将PNG图像转换为CMYK?

来自分类Dev

如何在已居中的图像上将文本居中叠加?

来自分类Dev

如何在已居中的图像上将文本居中叠加?

来自分类Dev

如何在Grails上将Int转换为Date格式?

来自分类Dev

如何在Android上将原始相机数据转换为位图

来自分类Dev

如何在Arduino串行read()上将char转换为int?

来自分类Dev

如何在Windows 8上将GPT音量转换为MBR

来自分类Dev

如何在python上将元组类型转换为int?

来自分类Dev

如何在Linux上将SVG转换为PDF

来自分类Dev

如何在PC上将Markdown文件转换为Dokuwiki

来自分类Dev

如何在Windows上将CVS存储库转换为Mercurial?

来自分类Dev

如何在Windows上将jar文件转换为.dmg

来自分类Dev

如何将文本转换为图像?

来自分类Dev

如何在Perl中将图像或文本文件转换为字节数组?

来自分类Dev

如何在动力学js版本5.1.0中将文本转换为图像

来自分类Dev

除了texplot之外,如何在R中将文本转换为图像?

来自分类Dev

如何在iOS中将相机(UIImagePickerControllerSourceTypeCamera)拍摄的图像转换为NSData

来自分类Dev

如何在iOS中将相机(UIImagePickerControllerSourceTypeCamera)拍摄的图像转换为NSData

来自分类Dev

如何在opencv中将图像转换为浮动图像?

来自分类Dev

如何在opencv中将图像转换为浮动图像?

来自分类Dev

如何在Android中将HTML文本转换为纯文本?

来自分类Dev

如何准确地将文本转换为(多个)图像?

来自分类Dev

Javascript-如何将文本转换为图像

来自分类Dev

如何将文本数据转换为图像?

来自分类Dev

如何将输入文本转换为图像?

来自分类Dev

如何在Linux上将Java程序转换为命令行实用程序?

来自分类Dev

如何在GHCJS上将未装箱的矢量转换为JS TypedArray?

Related 相关文章

  1. 1

    如何在node.js上将文本转换为Base58?

  2. 2

    如何在iOS上将WAV音频转换为mp3 / ogg?

  3. 3

    如何在iOS中将PNG图像转换为CMYK?

  4. 4

    如何在已居中的图像上将文本居中叠加?

  5. 5

    如何在已居中的图像上将文本居中叠加?

  6. 6

    如何在Grails上将Int转换为Date格式?

  7. 7

    如何在Android上将原始相机数据转换为位图

  8. 8

    如何在Arduino串行read()上将char转换为int?

  9. 9

    如何在Windows 8上将GPT音量转换为MBR

  10. 10

    如何在python上将元组类型转换为int?

  11. 11

    如何在Linux上将SVG转换为PDF

  12. 12

    如何在PC上将Markdown文件转换为Dokuwiki

  13. 13

    如何在Windows上将CVS存储库转换为Mercurial?

  14. 14

    如何在Windows上将jar文件转换为.dmg

  15. 15

    如何将文本转换为图像?

  16. 16

    如何在Perl中将图像或文本文件转换为字节数组?

  17. 17

    如何在动力学js版本5.1.0中将文本转换为图像

  18. 18

    除了texplot之外,如何在R中将文本转换为图像?

  19. 19

    如何在iOS中将相机(UIImagePickerControllerSourceTypeCamera)拍摄的图像转换为NSData

  20. 20

    如何在iOS中将相机(UIImagePickerControllerSourceTypeCamera)拍摄的图像转换为NSData

  21. 21

    如何在opencv中将图像转换为浮动图像?

  22. 22

    如何在opencv中将图像转换为浮动图像?

  23. 23

    如何在Android中将HTML文本转换为纯文本?

  24. 24

    如何准确地将文本转换为(多个)图像?

  25. 25

    Javascript-如何将文本转换为图像

  26. 26

    如何将文本数据转换为图像?

  27. 27

    如何将输入文本转换为图像?

  28. 28

    如何在Linux上将Java程序转换为命令行实用程序?

  29. 29

    如何在GHCJS上将未装箱的矢量转换为JS TypedArray?

热门标签

归档