1.加文字

 
-(UIImage *)addText:(UIImage *)img text:(NSString *)text1 
{     
     //get image width and height     
     int w = img.size.width;    
     int h = img.size.height;     
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();     
    //create a graphic context with CGBitmapContextCreate     
    CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);    
    CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);     
    CGContextSetRGBFillColor(context, 0.0, 1.0, 1.0, 1);     
    char* text = (char *)[text1 cStringUsingEncoding:NSASCIIStringEncoding];     
    CGContextSelectFont(context, "Georgia", 30, kCGEncodingMacRoman);     
    CGContextSetTextDrawingMode(context, kCGTextFill);     
    CGContextSetRGBFillColor(context, 255, 0, 0, 1);     
    CGContextShowTextAtPoint(context, w/2-strlen(text)*5, h/2, text, strlen(text));     
    //Create image ref from the context     
    CGImageRef imageMasked = CGBitmapContextCreateImage(context);     
    CGContextRelease(context);     
    CGColorSpaceRelease(colorSpace);     
    return [UIImage imageWithCGImage:imageMasked]; 
}
 
2.加图片
-(UIImage *)addImageLogo:(UIImage *)img text:(UIImage *)logo 
{    
    //get image width and height     
    int w = img.size.width;     
    int h = img.size.height;    
    int logoWidth = logo.size.width;     
    int logoHeight = logo.size.height;     
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();           
    //create a graphic context with CGBitmapContextCreate     
    CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);     
    CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);     
    CGContextDrawImage(context, CGRectMake(w-logoWidth, 0, logoWidth, logoHeight), [logo CGImage]);     
    CGImageRef imageMasked = CGBitmapContextCreateImage(context);     
    CGContextRelease(context);     
    CGColorSpaceRelease(colorSpace);     
    return [UIImage imageWithCGImage:imageMasked];     
    //  CGContextDrawImage(contextRef, CGRectMake(100, 50, 200, 80), [smallImg CGImage]); 
}
 
3.加半透明的水印
- (UIImage *)addImage:(UIImage *)useImage addImage1:(UIImage *)addImage1
{       
    UIGraphicsBeginImageContext(useImage.size);            
    [useImage drawInRect:CGRectMake(0, 0, useImage.size.width, useImage.size.height)];          
    [addImage1 drawInRect:CGRectMake(0, useImage.size.height-addImage1.size.height, addImage1.size.width, addImage1.size.height)];         
    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();      
    UIGraphicsEndImageContext();           
    return resultingImage;   
}

ios 加水印的更多相关文章

  1. iOS图片加水印效果的实现并保存至相冊

    图片加水印效果的实现并保存至相冊 实现效果如图: project下载:githubproject下载链接 代码: - (void)viewDidLoad { [super viewDidLoad]; ...

  2. Python练习册--PIL处理图片之加水印

    背景 最近在看到了Python 练习册,每天一个小程序 这个项目,非常有趣,也比较实用. 晚上看了这第000题,关于Python图片处理: 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似 ...

  3. 火车头dede采集接口,图片加水印,远程图片本地化,远程无后缀的无图片本地化

    <?php /* [LocoySpider] (C)2005-2010 Lewell Inc. 火车采集器 DedeCMS 5.7 UTF8 文章发布接口 Update content: 图片加 ...

  4. thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印

    今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...

  5. 【转】WPF TextBox和PasswordBox加水印

    Textbox加水印 Textbox加水印,需要一个VisualBrush和触发器验证Text是否为空,在空的时候设置背景的Brush就可以实现水印效果. <TextBox Name=" ...

  6. Web 上传图片加水印

    上传图片加水印 需要使用控件FileUpload 上传按钮Image控件展示上传的图片,页面中拖入三个控件 <form id="form1" runat="serv ...

  7. PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转

    [强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ...

  8. 使用iText对pdf做权限的操作(不允许修改,不允许复制,不允许另存为),并且加水印等

    添加水印,并且增加权限 @Test public void addWaterMark() throws Exception{ String srcFile="D:\\work\\pdf\\w ...

  9. 用node.js给图片加水印

    一.准备工作: 首先,确保你本地已经安装好了node环境.然后,我们进行图像编辑操作需要用到一个Node.js的库:images.这个库的地址是:https://github.com/zhangyua ...

随机推荐

  1. 关于Resharper的使用经验

    发现Resharper这东西真的有点累赘,重构也是,一开始用会有很多莫名其妙的提示.现在的项目用了Resharper,js是很方便,有定位功能,但连TypeScript的js都有了.

  2. js——事件

    焦点:使浏览器能够区分用户输入的对象,当一个元素有焦点的时候,那么他就可以接收用户的输入. 我们可以通过一些方式给元素设置焦点 1.点击 2.tab 3.js 不是所有元素都能够接收焦点的.能够响应用 ...

  3. CCF计算机认证注意事项

    1,同一变量只使用一次,你是使用同名的局部变量. 2,if()条件语句里面再不要使用单一的if()条件语句. 这应该都是他们系统的bug

  4. JavaWeb核心编程之使用Eclipse开发JavaWEB项目

    文章目录 1.eclipse切换到javaee项目 2.创建服务器(如果没有server选项, 怎么做) 3.定制新建面板内容 4.创建动态web工程 1.eclipse切换到javaee项目 如图 ...

  5. 21个值得收藏的Javascript技巧

    1  Javascript数组转换为CSV格式 首先考虑如下的应用场景,有一个Javscript的字符型(或者数值型)数组,现在需要转换为以逗号分割的CSV格式文件.则我们可以使用如下的小技巧,代码如 ...

  6. eclipse 异常Unhandled event loop exception

    出了这一类的异常问题,大都是一些图像优化软件插件等等. 出现的问题大都是,一些eclipse模块不显示,或者点击不反应,出现最多的次数是点击断点的时候. 我这里是Catalyst Control Ce ...

  7. VueJS搭建简单后台管理系统框架 (二) 模拟Ajax数据请求

    开发过程中,免不了需要前台与后台的交互,大部分的交互都是通过Ajax请求来完成,在服务端未完成开发时,前端需要有一个可以模拟Ajax请求的服务器. 在NodeJs环境下,通过配置express可访问的 ...

  8. 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!

    我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...

  9. C语言 格式说明符

    整数 lL代表long %#0 和%#x 可打印出八进制和十六进制前缀 short int long long long 无符号 八进制 %ho %o %Lo %LLo 十进制 %hu %u %Lu ...

  10. 7.java.lang.IllegalAccessException

    java.lang.IllegalAccessException 没有访问权限 当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常.对程序中用了Package的情况下要注意这个 ...