ios开发为图片添加中文水印的例子

先看一个效果图。

开发为图片添加中文水印的例子-ios开发图片添加水印">

 看似简单,其实不然。下面我就跟大家分享下我做这个demo中遇到的一些坑,相信对于和我一样的IOS开发初学者一定会有帮助。

首先,我最初采用的一种方式,是使用 CGBitmapContextCreate 创建 context ,然后使用 CGContextSelectFont 设置字体和字号,最后使用 CGContextShowTextAtPoint 将水印合成到上下文,再调用 CGBitmapContextCreateImage(context) 生成新的图片。这一切看似顺理成章,最终效果也确实实现了,但是当我输入中文的时候,问题出现了,不用多说大家应该已经才到了,令人头痛的乱码出现了。于是我开始改编码,改字体,各种改,最终还是无果。无奈又开始翻查各种资料,最终让我发现原来 CGContextShowTextAtPoint 方法本就不支持中文输出。至此,本以为已经大功告成,却不得不从头再来!

既然上面的方法已经不能得到我想要的结果,我也只好另寻他法。不得不说如今的互联网真的非常强大,很快我就搜索到了另外的实现方式,于是我又开始动起手来。这次的实现方式是:首先使用 UIGraphicsBeginImageContext(CGSize) 创建图片上下文,然后:

 代码如下 复制代码

[UIImage drawInRect:CGRect];

绘制主图片,接着:

 

 代码如下 复制代码
[NSString drawInRect:CGRect withFont:UIFont];

绘制水印文字,在这里还可以使用:

 代码如下 复制代码

[[UIColor redColor] set];

设置水印文字 颜色,如果想绘制图片水印,这里改用前面绘制主图的方式有效。接下来使用:

 代码如下 复制代码

Objective-C
UIImage *aimg = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

 生成新图片,关闭上下文。皇天不负有心人,这次终于一切正常了。下面贴一下主要代码:

 代码如下 复制代码

Objective-C
- (UIImage *) addText:(UIImage *)img text:(NSString *)mark {
    int w = img.size.width;
    int h = img.size.height;
    UIGraphicsBeginImageContext(img.size);
    [[UIColor redColor] set];
    [img drawInRect:CGRectMake(0, 0, w, h)];
    [mark drawInRect:CGRectMake(10, 55, 130, 80) withFont:[UIFont systemFontOfSize:18]];
    UIImage *aimg = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return aimg;

}

好了,本文到此先告一段落,欢迎大家多多评论,多多交流!

时间: 2024-09-20 23:13:13

ios开发为图片添加中文水印的例子的相关文章

Photoshop给图片添加隐形水印效果

Photoshop简单给图片添加隐形水印效果,图文教程,按ctrl+a就可以看到效果. 原图: 效果图:(按Ctrl+A可以看到效果) 教程:

POST请求,iOS开发时,图片上传的时候,类型是文件流,怎么写

问题描述 POST请求,iOS开发时,图片上传的时候,类型是文件流,怎么写 POST请求,iOS开发时,图片上传的时候,类型是文件流,怎么写,在线等 解决方案 http://blog.csdn.net/zhangkongzhongyun/article/details/8277426 解决方案二: 给个思路就行,或者给个链接

php面向对象与面向过程两种方法给图片添加文字水印_php实例

目前绝大多数PHP程序员使用面向过程的方式,因为解析WEB页面本身就非常"过程化"(从一个标签到另一个标签).在HTML中嵌入过程处理代码是很直接自然的作法,所以PHP程序员通常使用这种方式. 如果你是刚接触PHP,用面向过程的风格来书写代码很可能是你唯一的选择.但是如果你经常上PHP论坛和新闻组的话,你应该会看到有关"对象"的文章.你也可能看到过如何书写面向对象的PHP代码的教程.或者你也可能下载过一些现成的类库,并尝试着去实例化其中的对象和使用类方法--尽管你可

IOS开发相册图片多选和删除的功能_IOS

照例先上效果图 本次用的第三方框架做这个,但是需要考虑的地方也比较多,怎么把拍照和相册选取结合.删除照片后添加新照片时候的相册状态等等,所有的改变都是在操作数组.还需考虑图片的压缩上传. 本次用的第三方框架为:QBImagePickerController 按照惯例,上代码,本次代码较多 第一个控制器 .h里没啥代码 #import "RRZShowEditViewController.h" #import "RRZSendShowTextCell.h" #impo

php图片加中文水印实现代码

例1  代码如下 复制代码 <?php Header("Content-type: image/png");      /*通知浏览器,要输出图像*/ $im       = imagecreate(400 , 300);        /*定义图像的大小*/ $gray     = ImageColorAllocate($im , 235 , 235 , 235); $pink     = ImageColorAllocate($im, 255 , 128 , 255); $f

php给图片增加中文水印

增加中文水印 <?php /*------------------------------------------------------------- **描述:这是用于给指定图片加底部水印(不占用图片显示区域)的自定义类,需创建对象调用 **版本:v1.0 **创建:2007-10-09 **更新:2007-10-09 **人员:老肥牛([email]fatkenme@163.com[/email]  QQ:70177108) **说明:1.需要gd库支持,需要iconv支持(php5已经包

php图片添加文字水印实现代码_php技巧

php类库给现有的图片加文字水印,代码不是很完善,欢迎大家多多指教!代码如下: <?php /*PHP图片加文字水印类库 QQ:3697578482 伤心的歌 该类库暂时只支持文字水印,位置为右下角,颜色随机 调用方法: 1.在需要加水印的文件顶部引入类库: include_once 'imageClass.php'; 2.声明新类: $tpl=new image_fu; 3.给图片水印提供参数: $tpl->img(图片路径,水印文字,字体路径,字体大小,字体角度); 比如:$tpl->

php实现图片添加文字水印程序代码

 代码如下 复制代码 /*PHP图片加文字水印类库 该类库暂时只支持文字水印,位置为右下角,颜色随机 调用方法: 1.在需要加水印的文件顶部引入类库: include_once 'imageClass.php'; 2.声明新类: $tpl=new image_fu; 3.给图片水印提供参数: $tpl->img(图片路径,水印文字,字体路径,字体大小,字体角度); 比如:$tpl->img('abc.jpg','这是水印文字','ziti.ttf',30,0) */ 代码如下: waterma

php 图片添加文字水印并添加文字阴影

GD库,是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片. 在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等.   生成效果图: GD库的安装什么的网上都有,现在很多虚拟空间也都支持,这里就不再赘述.下面通过我实际应用代码的实例和相关的注释为大家介绍一下GD库的使用方法.  代码如下 复制代码 $str="北京"; $str2= "空气质量:轻度污染"; /