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. C#获得命令提示符输出

    原文:http://blog.csdn.net/abrahu/article/details/6611504 C#获得命令提示符输出 分类: c#应用程序2011-07-16 23:34 600人阅读 ...

  2. Java 7源码分析第13篇 - 字节输入输出流(1)

    上一篇介绍了关于字节输入输出流的Java类框架,同时也简单介绍了一下各个类的作用,下面就来具体看一下这些类是怎么实现这些功能的. 1.InputStream和OutputStream InputStr ...

  3. EBS OAF中如何在多行表中实现附件功能

    EBS OAF中如何在多行表中实现附件功能 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) 在OAF中使用附件功能之前,要先明白Entity( ...

  4. Android中Dialog对话框

    布局文件xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...

  5. js 中 setTimeout()的用法

    setTimeout()在js类中的使用方法   setTimeout (表达式,延时时间)setTimeout(表达式,交互时间)延时时间/交互时间是以豪秒为单位的(1000ms=1s) setTi ...

  6. 走进C标准库(3)——"stdio.h"中的getc和ungetc

    接前文. 再来看看getc和ungetc的实现.在看这两个函数的实现之前,我们先来想一想这两个函数分别需要做的工作. int getc(FILE *stream) 说明:函数getc从stream指向 ...

  7. Oracle EBS-SQL (GL-5):从发票追溯到接收

    SELECT destination_type_code, distribution_line_number, line_type, amount,vat_code, tax_code_id, tax ...

  8. 武汉新芯:定位存储器制造,两年后或推3D NAND

    武汉新芯集成电路制造公司(XMC)2006成立,2012年底起独立经营,是国有制企业.为了区别于本土的制造巨头SMIC(中芯国际)和华力微电子(HLMC)等,XMC将立足存储器制造.近日,武汉新芯董事 ...

  9. 城市平乱(Bellman)

    城市平乱 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 南将军统领着N个部队,这N个部队分别驻扎在N个不同的城市. 他在用这N个部队维护着M个城市的治安,这M个城市 ...

  10. gallery利用代码定位图片并且不丢失动画效果

    安卓中,利用gallery.setSelection(position);可以手动定位图片 但是众所周知会丢失动画效果 即使是用gallery.setSelection(position,true); ...