iOS实现文字转化成彩色文字图片_IOS

本文写了个将文字转化为多彩图片的功能,输入文字将文字转化为彩色的文字图片,可选择不同的字体,渐变,先看看效果。

实现主要用CAGradientLayer渐变,先看看上部展示实现代码:

-(void)setupContentView
{
 UIView *contentView = [[UIView alloc] initWithFrame:CGRectMake(0, 44, ScreenWidth, ScreenHight - 44 -300)];
 [self.view addSubview:contentView];
 UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapGestureAction:)];
 [contentView addGestureRecognizer:tapGesture];
 self.topContentView = contentView;
 self.topContentView.backgroundColor = [UIColor clearColor];

 UILabel *label = [[UILabel alloc] init];
 label.numberOfLines = 0;
 label.text = @"ABC";
 label.frame = [self calculateContextLabelFrameWithTitle:@"ABC"];
 label.center = CGPointMake(contentView.bounds.size.width / 2, contentView.bounds.size.height / 2);
 label.font = [UIFont fontWithName:self.fontNameArray[0] size:25];
 label.textAlignment = NSTextAlignmentCenter;
 [contentView addSubview:label];
 label.backgroundColor = [UIColor clearColor];
 self.contentLabel = label;

 self.gradientLayer = [CAGradientLayer layer];
 self.gradientLayer.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width, label.frame.size.height);
 self.gradientLayer.backgroundColor = [UIColor clearColor].CGColor;
 self.gradientLayer.startPoint = CGPointMake(0,0.5);
 self.gradientLayer.endPoint = CGPointMake(1,0.5);
 self.gradientLayer.colors = self.grandentArr[0];
 [contentView.layer addSublayer:self.gradientLayer];
 self.gradientLayer.mask = self.contentLabel.layer;
 self.contentLabel.frame = self.gradientLayer.bounds;
}

当输入的文字改变时,重新计算 self.gradientLayer的frame

-(void)textFieldTextChange:(NSNotification*)notice
{
 self.contentLabel.text = self.textField.text;
 [self reCalculateGradientLayerFrame];
}

下部分的实现代码:

-(void)setupBottomView
{
 UIView *bottomView =[[UIView alloc] initWithFrame:CGRectMake(0, ScreenHight - 300, ScreenWidth, 300)];
 bottomView.backgroundColor = JGCOLOR(222, 222, 222);
 [self.view addSubview:bottomView];
 self.bottomContentView = bottomView;

 UIView *textContentView = [[UIView alloc] init];
 textContentView.frame = CGRectMake(0, 0, bottomView.bounds.size.width, 50);
 [bottomView addSubview:textContentView];
 textContentView.backgroundColor = JGCOLOR(55, 44, 16);

 UITextField *textField = [[UITextField alloc] init];
 textField.borderStyle = UITextBorderStyleRoundedRect;
 textField.frame = CGRectMake(10, 5, textContentView.bounds.size.width - 20, textContentView.bounds.size.height - 10);
 [textContentView addSubview:textField];
 self.textField = textField;

 CGFloat orgY = 60;
 CGFloat orgx = 10;
 CGFloat space = 10;
 CGFloat width = (ScreenWidth - orgx * 2 - 3 * space) / 4;
 CGFloat height = 35;

 for (int i = 0; i < 16; i++) {
  UIView *vw = [[UIView alloc] initWithFrame:CGRectMake(orgx + (i % 4) * width + (i % 4) * space, orgY + (i / 4) * height + (i / 4) * space, width, height)];
  vw.backgroundColor = [UIColor clearColor];
  vw.tag = i + 1;
  [self.bottomContentView addSubview:vw];

  UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTap:)];
  [vw addGestureRecognizer:tapGesture];

  UILabel *label = [[UILabel alloc] initWithFrame:vw.bounds
       ];
  label.textAlignment = NSTextAlignmentCenter;
  label.text = @"ABC";
  label.frame = vw.bounds;
  label.font = [UIFont fontWithName:self.fontNameArray[i % 4] size:25];
  label.backgroundColor = [UIColor clearColor];
  [vw addSubview:label];

  CAGradientLayer *grandient = [CAGradientLayer layer];
  grandient.frame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width, label.frame.size.height);
  grandient.backgroundColor = [UIColor clearColor].CGColor;
  grandient.startPoint = CGPointMake(0,0.5);
  grandient.endPoint = CGPointMake(1,0.5);
  grandient.colors = self.grandentArr[i / 4];
  [vw.layer addSublayer:grandient];
  grandient.mask = label.layer;
  label.frame = grandient.bounds;
 }
}

将文字转化为图片的代码:

-(void)getTitleImg
{
 UIGraphicsBeginImageContext(self.topContentView.frame.size);
 CGContextRef context = UIGraphicsGetCurrentContext();

 if ([[UIDevice currentDevice].systemVersion floatValue] >= 7.0) {
  [self.topContentView drawViewHierarchyInRect:self.topContentView.frame afterScreenUpdates:YES];
 }
 else
 {
  [self.topContentView.layer renderInContext:context];
 }

 UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();

 CGImageRef newImgRef = CGImageCreateWithImageInRect(img.CGImage, CGRectMake(self.gradientLayer.frame.origin.x, self.gradientLayer.frame.origin.y + 44, self.gradientLayer.frame.size.width, self.gradientLayer.frame.size.height));

 UIGraphicsBeginImageContextWithOptions(self.gradientLayer.frame.size, NO, [UIScreen mainScreen].scale);
 context = UIGraphicsGetCurrentContext();

 CGContextTranslateCTM(context, 0, self.gradientLayer.frame.size.height);
 CGContextScaleCTM(context, 1, -1);

 CGContextDrawImage(context, CGRectMake(0, 0, self.gradientLayer.frame.size.width, self.gradientLayer.frame.size.height), newImgRef);
 UIImage *newImg = UIGraphicsGetImageFromCurrentImageContext();
 UIGraphicsEndImageContext();

 ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
 [library toolWriteImageToSavedPhotosAlbum:newImg.CGImage metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {

  if (error) {
   JGLog(@"写入出错");
  }
 } groupName:@"相册名称"];

}

核心代码如上,主要运用到了CAGradientLayer,截图,裁图的方法。
以上就是本文的全部内容,希望对大家的学习有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索iOS文字转化
js实现文字转化音频、ios7解锁文字彩色、ios文字实现超链接、ios实现语音播报文字、ios 实现文字滚动,以便于您获取更多的相关知识。

时间: 2024-10-26 13:02:01

iOS实现文字转化成彩色文字图片_IOS的相关文章

把图片上文字转换成word文字

大 家好,我们可能常常会碰到将图片文字转换成word的难题,通常要将图片文字转换成word的图片,有些是扫描的,有些是用相机拍下来的,但不能在电脑上 编辑,如果图片文字转换成word后就可以在电脑上编辑了!图片上的文字是不能复制,这是一件令人非常郁闷的事情.很多工作上的各种需求,需要把图片文字 转换成word,可编辑的文本,一般人都会想到依着图片手打,可能一两张图片的时候还可以接受,但如果一本实物书要转换成可以编辑的word,那就不是手 打那么简单了,光靠手打根本完成不了整本书的图片文字转换成w

AI怎么把文字转化成路径

  AI是一款非常好用的设计软件,我们可以在上面输入文字然后把文字转换成路径,这样每一个点都可以进行编辑了,那么ai怎么把文字转换成路径呢,下面小编就给大家介绍详细的操作方法. 1.在桌面找到我们AI软件 2.打开软件,直接来到我们的设置主面板上,我们做一点简单的操作 3.找到左上角的文件,然后我点击新建,我们输入一个您认为可以的尺寸,点击确定 4.在左边有一个T的工具字样,我们点击他输入文字 5.我们在画布上输入我们的字,您可以任意输入,我们做测试嘛 6.输入完成之后,找到上边的文字,点击创建

将文本文件的内容或者文字保存成图片的方法介绍

 这篇文章主要介绍了将文本文件的内容或者文字保存成图片的方法,需要的朋友可以参考下 调用方法: 代码如下: ConvertTextFileToImage(Server.MapPath("~/Log.txt"),Server.MapPath("~/Log.png"));     实现代码:  代码如下: void ConvertTextFileToImage(String textFile,String imageFile) { System.Drawing.Font

word2013怎样将文字替换成图片

  word2013将文字替换成图片步骤①:我们打开Word2013,看到表格数据中有香蕉,下方有一个香蕉的图案,选中图案,Ctrl+X剪切下来. word2013将文字替换成图片步骤②:按下Ctrl+H打开查找与替换窗格,在查找里面输入香蕉,单击更多按钮. word2013将文字替换成图片步骤③:单击特殊格式选项,从弹出的菜单中选择"剪贴板"内容. word2013将文字替换成图片步骤④:此时可以看到替换栏里面输入了^c,我们单击全部替换,之后可以显示出替换了多少项. word201

word教你如何把文字替换成图片

  word使用技巧:教你如何把文字替换成图片 1.首先把图片复制到 剪贴板中,然后打开替换对话框; 2.在"查找内容"框中输入将被替换的文字; 3.接着在"替换为"框中输入"^c"(注意:输入的一定要是半角字符,c要小写),单击替换即可. 说明:   "^c"的意思就是指令WordXP以剪贴板中的内容替换"查找内容"框中的内容.按此原理,"^c"还可替换包括回车符在内的任何可以复制到剪

Word2013如何将文字替换成图片

有些时候,用图片更加能让读者理解,通俗易懂,我们将Word中某些文字替换成图片,例如,香蕉替换为香蕉的图案,公司替换为公司LOGO都是不错的选择.下面,我就简单讲解一下如何进行替换. 方法介绍 ①我们打开Word2013,看到表格数据中有香蕉,下方有一个香蕉的图案,选中图案,Ctrl+X剪切下来. ②按下Ctrl+H打开查找与替换窗格,在查找里面输入香蕉,单击更多按钮. ③单击特殊格式选项,从弹出的菜单中选择"剪贴板"内容. ④此时可以看到替换栏里面输入了^c,我们单击全部替换,之后可

怎么把图片上的文字转换成word

办公室文员每天的工作任务就是跟无数的文件打交道,主要做的是整理工作,这样的工作虽然没有什么难度系数,但是一些繁琐的文件处理和录入是非常繁重的劳动,如果没有好的工具支持,这样的工作完成起来也是非常困难的.这其中耗时最多的就数纸质文件和图片文件等等文件了(文件中的字是不可编辑的)的存档,这类文件在不利用工具帮忙的情况下只有手动输入.还在思考怎么才能把扫描图片中的文字转换成word吗?现在不必烦恼了,接下来和我们一起看看我们是如何解决这一难题的. 我们使用到的工具有:捷速图片文字转换成word软件 第

图片文字转换成word教程

步骤一:在电脑中下载安装捷速图片文字转换成word软件,安装只需三步,用户可轻松完成. 步骤二:打开已经下载好的软件,直接进入到软件的操作界面,左上角排列着软件的操作按钮,首先点击"读取"按钮,读取需要识别的文件. 步骤三:在读取的图片中,拖动鼠标选取需要识别的文字内容. 步骤四:直接点击"识别"按钮,软件会自动对选取的内容进行识别工作,一般都是瞬间完成. 步骤五:识别完成,对识别结果进行核对,核对完成后点击"Word"按钮将其保存为Word文件

IOS 开发之自定义按钮实现文字图片位置随意定制_IOS

IOS 开发之自定义按钮实现文字图片位置随意定制 可能有些看到这篇文章的朋友会觉得很不屑:"按钮谁不会自定义?还需要看你的?" 也确实,按钮是我们项目中最常见的控件之一,天天在使用.对于不同类型的按钮,我们是否有更加简便的方法来实现需求是我们需要做的.这里我提出自己的两种方法,您可以对你自己平时自定义按钮的方法做一下对比,看看哪种方法更加简单. 多说一句,千万不要觉得知识简单,觉得自己会了,没必要学习.'往往简单的东西存在大智慧'(这个比给满分),知识都是慢慢积累出来的. 按钮是应用中