当前位置: 首页 > 面试题库 >

如何在Objective-C(iOS)中的图像上写文字?

马哲
2023-03-14
问题内容

我想以编程方式制作这样的图像:

我有上面的图像和文字。我应该在图像上写文字吗?

我想使其成为一个完整的.png图像(图像+标签),并将其设置为按钮的背景。


问题答案:

在图像内绘制文本并返回结果图像:

+(UIImage*) drawText:(NSString*) text 
             inImage:(UIImage*)  image 
             atPoint:(CGPoint)   point 
{

    UIFont *font = [UIFont boldSystemFontOfSize:12];
    UIGraphicsBeginImageContext(image.size);
    [image drawInRect:CGRectMake(0,0,image.size.width,image.size.height)];
    CGRect rect = CGRectMake(point.x, point.y, image.size.width, image.size.height);
    [[UIColor whiteColor] set];
    [text drawInRect:CGRectIntegral(rect) withFont:font]; 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}

用法:

// note: replace "ImageUtils" with the class where you pasted the method above
UIImage *img = [ImageUtils drawText:@"Some text"
                            inImage:img 
                            atPoint:CGPointMake(0, 0)];

将图像内文本的原点从0,0更改为所需的任意点。

要在文本后面绘制纯色矩形,请在该行之前添加以下内容[[UIColor whiteColor] set];:

[[UIColor brownColor] set];
CGContextFillRect(UIGraphicsGetCurrentContext(), 
                  CGRectMake(0, (image.size.height-[text sizeWithFont:font].height), 
                                  image.size.width, image.size.height));

我正在使用文本大小来计算纯色矩形的原点,但是您可以将其替换为任何数字。



 类似资料:
  • 问题内容: 我可以在iPhone上的Objective-C中执行此操作,但是现在我正在寻找等效的Android Java代码。我也可以用普通Java做到这一点,但是我不知道Android特定的类是什么。我想动态生成一个PNG图像,该图像中有一些文本居中。 相关线程: 如何在Objective-C(iOS)中的图像上写文字? 如何使用Java加载图像并向其中写入文本? 问题答案: 怎么样呢?

  • 问题内容: 我的客户希望在Instagram,Twitter,Facebook上共享图像。 我已经完成了Twitter和Facebook,但是在互联网上找不到任何API或任何东西可以在Instagram上共享图像。 是否可以在Instagram上分享图片? 如果是,那怎么办? 当我检查Instagram的开发人员站点时,我发现了Ruby on Rails和Python库。但是没有iOS Sdk的文

  • 如需集成DeepShare,请参考DeepShare iOS集成 1. 导入SDK 你可以用下面的方法进行导入: 方法1. 使用CocoaPods导入 若未安装CocoaPod,请先在终端执行 gem install cocoapods来安装CocoaPod 创建Podfile文件。若目录下没有Podfile文件,请在项目目录下执行pod init,若已有,请直接执行下一步 打开Podfile文件

  • 我有一个图像缓存在我的应用程序文档文件夹。我想把它复制到文档文件夹里。到目前为止,我知道我可以加载我的图像作为UIIimage,然后将它转换为数据并保存在我的目标路径中。但有没有比这更好的办法呢?就像我不想在UIIimage中转换我的图像,然后再将其转换为数据并写入。 我的png代码是:

  • 我需要在图像上写一些文字,然后将其居中或放在一些段落中。我想一步一步地熟悉这个库,所以我在教程中写了以下代码: 我本以为路径上的文件已经编辑过了,但事实并非如此,我是不是遗漏了什么?这是一个。顺便说一句,当这一切顺利的时候,我也必须把一个较小的图像放在这张上面,所以希望图书馆也能这样做

  • 问题内容: 我环顾四周,但未能弄清楚如何获取文本,将其覆盖在图像上,然后将两者合并为一个。 我已经用我能想到的搜索字词用尽了Google,因此,如果有人有解决方案或至少有一个提示,他们可以指出它,将不胜感激。 问题答案: 好吧…我知道了: 要调用它,您只需传递一个图像: 最初的目标是创建一个动态图像,我可以在其中使用该图像,例如在地图上的给定位置标价,这很适合。希望这对尝试做同样事情的人有所帮助。