`
dcj3sjt126com
  • 浏览: 1872366 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

iOS-给图片添加水印效果的方法并保存图片到指定路径

    博客分类:
  • IOS
阅读更多

这里介绍两种方法:

方法一:添加文字水印,这里说的文字水印是指将开发者定义的文字直接添加到图片上,代码如下:

UIImage *img = [UIImage imageNamed:@"3G_alert.png"];  //需要加水印的图片
    CGSize size = self.view.frame.size; //设置上下文(画布)大小
    UIGraphicsBeginImageContext(size); //创建一个基于位图的上下文(context),并将其设置为当前上下文
    CGContextRef contextRef = UIGraphicsGetCurrentContext(); //获取当前上下文
    NSString *title = @"舵手网络";  //需要添加的水印文字
    CGContextTranslateCTM(contextRef, 0, self.view.bounds.size.height);  //画布的高度
    CGContextScaleCTM(contextRef, 1.0, -1.0);  //画布翻转
    CGContextDrawImage(contextRef, self.view.frame, [img CGImage]);  //在上下文种画当前图片
 
    [[UIColor redColor] set];  //上下文种的文字属性
    CGContextTranslateCTM(contextRef, 0, self.view.bounds.size.height);
    CGContextScaleCTM(contextRef, 1.0, -1.0);
    UIFont *font = [UIFont boldSystemFontOfSize:40];
    [title drawInRect:CGRectMake(100, 400, 200, 80) withFont:font];
    UIImage *res =UIGraphicsGetImageFromCurrentImageContext();  //从当前上下文种获取图片
    UIGraphicsEndImageContext(); //移除栈顶的基于当前位图的图形上下文。
    NSArray *savePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *p = [savePath objectAtIndex:0];
    NSLog(@"%@",p);
    NSString *dataFilePath = [p stringByAppendingPathComponent:@"1.png"];
 
    NSData *imageData = UIImagePNGRepresentation(res);
    [imageData writeToFile:dataFilePath atomically:YES];
 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    [imageView setImage:res];
    [self.view addSubview:imageView];

 方法二:添加图片水印,顾名思义,就是两张图片,一张原图,一张水印图片,代码如下:

 UIImage *img = [UIImage imageNamed:@"demo.jpg"];  //需要加水印的图片
    UIImage *smallImg = [UIImage imageNamed:@"water.png"];
    CGSize size = self.view.frame.size; //设置上下文(画布)大小
    UIGraphicsBeginImageContext(size); //创建一个基于位图的上下文(context),并将其设置为当前上下文
    CGContextRef contextRef = UIGraphicsGetCurrentContext(); //获取当前上下文
    CGContextTranslateCTM(contextRef, 0, self.view.bounds.size.height);  //画布的高度
    CGContextScaleCTM(contextRef, 1.0, -1.0);  //画布翻转
 
    CGContextDrawImage(contextRef, self.view.frame, [img CGImage]);  //在上下文种画当前图片
    CGContextDrawImage(contextRef, CGRectMake(100, 50, 200, 80), [smallImg CGImage]);
    UIImage *res = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext(); //移除栈顶的基于当前位图的图形上下文。
    NSArray *savePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *p = [savePath objectAtIndex:0];
    NSLog(@"%@",p);
    NSString *dataFilePath = [p stringByAppendingPathComponent:@"1.png"];
 
    NSData *imageData = UIImageJPEGRepresentation(res, 1.0);
    [imageData writeToFile:dataFilePath atomically:YES];
 
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
    [imageView setImage:res];
    [self.view addSubview:imageView];

 

分享到:
评论

相关推荐

    ios开发 图片添加水印(修复版) 透明水印 文字水印

    在iOS开发中,为图片添加水印是一项常见的需求,无论是为了保护版权,还是为了增加视觉效果。本教程将深入探讨如何在iOS应用中实现图片的文本水印和透明水印功能。 首先,我们需要理解基本概念。水印通常是指在图片...

    基于拍照,打开相册选择照片的封装,给图片添加水印

    在移动应用开发中,给用户提供拍照、从相册选择照片并添加水印的功能是一项常见的需求。这个功能可以用于个性化分享、版权保护或者品牌宣传等多种场景。以下是对这一功能的详细解释和实现步骤。 首先,我们需要了解...

    xamarin.android相机实例照片拍摄加水印和录制视频

    拍照后,我们可以在图片上添加水印。这通常通过处理Bitmap对象完成,可以使用Canvas类的drawText或drawBitmap方法来绘制文字或图像。水印的位置、大小、透明度等属性可以根据需求调整。完成加水印后,将处理后的...

    ios 视频分割编辑

    在FFmpeg中,可以使用`libavfilter`模块的`drawtext`过滤器来添加文字水印,或者使用`movie`过滤器添加图片水印。在iOS应用中,可以先创建一个包含水印的图像,然后使用`AVVideoComposition`和`...

    图片上传工具类

    - **安全性**:考虑到隐私和安全,可能需要对图片进行加密或者添加水印。此外,上传的图片路径和URL也需要妥善管理,避免泄露。 - **文件上传API设计**:服务器端需要提供一个接受图片文件的接口,通常使用...

    手写签名并截屏

    此外,为了提供更好的用户体验,截取的屏幕图片可以进行裁剪、添加水印等后期处理。 总的来说,手写签名和截屏保存文件在IT应用中是一个集硬件交互、图形处理、用户界面设计于一体的复杂过程。开发者需要熟练掌握...

    仿微信截屏,在屏幕上出现抓取的方框 在屏幕上出现抓取窗口.zip

    Android可以使用`MediaStore`或`ContentProvider`来保存图片,iOS则使用`UIImageWriteToSavedPhotosAlbum`。分享功能通常涉及集成社交平台SDK,如微信、QQ等,调用它们的分享接口。 7. **权限管理**:在Android 6.0...

    截取当前屏幕图像的资源

    一些高级用户可能需要自定义热键、设置自动保存路径、添加水印或自动上传到云端。这通常需要借助高级截图工具或编程技巧来实现,例如使用AutoHotkey脚本语言创建自定义截图快捷方式。 总的来说,无论你是Windows、...

    JAVA上百实例源码以及开源项目源代码

    简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,...

    unity-screen-capture:统一的高分辨率屏幕截图

    通过调用ScreenCapture.CaptureScreenshot("filename.png"),开发者可以在运行时生成一个截图并保存到指定路径。这个函数可以结合其他条件判断,实现动态截图功能。 6. **高质量和高分辨率截图** 要实现高分辨率...

Global site tag (gtag.js) - Google Analytics