IOS 给图片添加水印 打印文字

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;

}

时间: 2024-11-05 12:22:34

IOS 给图片添加水印 打印文字的相关文章

IOS 给图片添加水印(文字)

有时候上传图片要加唯一标识,简单的就是添加一个水印.这里水印我们讲文字,可以是当前系统时间.坐标.地理位置等 原理就是把一个字符串写到图片上,并且字(font)的大小由图片大小控制. 以下是封装好的一个类方法: //NavView.m + (UIImage *) addText:(UIImage *)img text:(NSString *)mark { int w = img.size.width; int h = img.size.height; UIGraphicsBeginImageCo

海报工厂之(一)android 如何给图片添加水印和文字

在Android中如何给图片添加水印,下面截取了部分核心代码,仅供参考: /**      * 获取图片缩小的图片      * @param src      * @return      */     public static Bitmap scaleBitmap(String src)     {         //获取图片的高和宽         BitmapFactory.Options options = new BitmapFactory.Options();        

ios 给图片添加水印

//第一种添加水印方法 -(UIImage *)watermarkImage:(UIImage *)img withName:(NSString *)name{ NSString* mark = name; int w = img.size.width; int h = img.size.height; UIGraphicsBeginImageContext(img.size); [img drawInRect:CGRectMake(, , w, h)]; NSDictionary *attr

IOS在图片上画文字,非常简单

用UIGraphics进行2D图像渲染 不要用UIGraphicsBeginImageContext(size); 不然图片会模糊 Core Graphics API所有的操作都在一个上下文中进行.所以在绘图之前需要获取该上下文并传入执行渲染的函数中.如果你正在渲染一副在内存中的图片,此时就需要传入图片所属的上下文.获得一个图形上下文是我们完成绘图任务的第一步,你可以将图形上下文理解为一块画布.如果你没有得到这块画布,那么你就无法完成任何绘图操作.当然,有许多方式获得一个图形上下文,这里我介绍两

Android 图片添加水印图片或者文字

给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分 添加水印图片: private Bitmap createWaterMaskImage(Context gContext, Bitmap src, Bitmap watermark) { String tag = "createBitmap"; Log.d(tag, "create a new bitmap"); if (src == null) { return null; } i

iOS边练边学--(Quartz2D)图片添加水印

一.给图片添加水印的基本步骤 加载图片 手动创建位图上下文 绘制原生的图片 给原生的图片添加文字 生成一张图片给我们,从上下文中获取图片 关闭上下文 二.注意:位图上下文的获取方式跟layer上下文不一样.位图上下文需要我们手动创建 三.效果图

iOS按钮设置图片在上文字在下

UIButton同时设置Title和Image后,默认是图片在左文字在右,如下图1,很多情况下我们希望图片在上图片在下,如下图2,只需要简单的几行代码,即可实现. (1)因为需要处理多个按钮,所以将实现代码封装为一个方法,把每个UIbutton实例作为参数传入即可,代码如下: -(void)initButton:(UIButton*)btn{ btn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;//

麦子学院ios笔记:IOS把图片缓存到本地的几种方法

把ios的图片缓存到本地的方法有几种?现在来看看学生在麦子学院学习ios开发的笔记中有讲到哪几种方法呢? <code>把图片缓存到本地,在很多场景都会用到,如果是只储存文字信息,那建一个plist文件,或者数据库就能很方便的解决问题,但是如果存图片到沙盒就没那么方便了.这里介绍两种保存图片到沙盒的方法. </code> 一.把图片转为base64的字符串存到数据库中或者plist文件中,然后用到的时候再取出来 <code class="hljs" obje

Thinkphp图片水印和文字水印

1.Thinkphp图像处理 在TP框架中,我们经常用到图片上传,我最近写了很多关于图片上传的文章,thinkphp图片上传+validate表单验证+图片木马检测+缩略图生成等文章,今天写一下关于图片上传成功后给图片加水印文字或者加图片水印, 1.1图片处理类和库 首先,在Thinkphp\Think\Image类中有图像处理功能,支持Gd库和Imagick库,包括对GIf图像处理的支持. 1.2实例化类库 $image = new \Think\Image(); 实例化image后,默认使用