图片任意位置添加水印
2014-07-04 10:28
239 查看
昨天学习了一下如何为一张图片添加水印。原理相当简单
首先如果我们想要在图片上随意的位置加水印,那么。水印应该是可以随手指移动而移动的,如下直接上代码:
注意!MoveAbleImageView 是继承于 UIImageView ,这个看个人需求都可以。 而且 MoveAbleImageView的 userInteractionEnabled属性要为YES,这样控件就可以跟随你手指移动而移动了。
接下来就要做合成图片了。我的想法有两种。一种是图片合成。别一种就是直接截图了。下面看代码
第一种:合成
第二种:截屏
这样基本就可以做成加水印的效果了。
首先如果我们想要在图片上随意的位置加水印,那么。水印应该是可以随手指移动而移动的,如下直接上代码:
#import "MoveAbleImageView.h" @implementation MoveAbleImageView - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesBegan:touches withEvent:event]; } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesEnded:touches withEvent:event]; } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { [super touchesMoved:touches withEvent:event]; float dX = [[touches anyObject] locationInView:self].x - [[touches anyObject] previousLocationInView:self].x; float dY = [[touches anyObject] locationInView:self].y - [[touches anyObject] previousLocationInView:self].y; //CGAffineTransformTranslate 是以transform为起点 self.transform = CGAffineTransformTranslate(self.transform, dX, dY); }
注意!MoveAbleImageView 是继承于 UIImageView ,这个看个人需求都可以。 而且 MoveAbleImageView的 userInteractionEnabled属性要为YES,这样控件就可以跟随你手指移动而移动了。
接下来就要做合成图片了。我的想法有两种。一种是图片合成。别一种就是直接截图了。下面看代码
第一种:合成
/** 加半透明水印 @param useImage 需要加水印的图片 @param addImage1 水印 @returns 加好水印的图片 */ - (UIImage *)addImage:(UIImage *)useImage addMsakImage:(UIImage *)maskImage msakRect:(CGRect)rect { UIGraphicsBeginImageContext(useImage.size); [useImage drawInRect:CGRectMake(0, 0, useImage.size.width, useImage.size.height)]; //四个参数为水印图片的位置 [maskImage drawInRect:rect]; UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return resultingImage; }maskImage就是水印图。rect为水印图位置
第二种:截屏
-(UIImage *)saveImage:(UIView *)view { CGRect mainRect = [[UIScreen mainScreen] bounds]; UIGraphicsBeginImageContext(CGSizeMake(320, 200)); CGContextRef context = UIGraphicsGetCurrentContext(); // [[UIColor blackColor] set]; CGContextFillRect(context, mainRect); [view.layer renderInContext:context]; UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return newImage; }
这样基本就可以做成加水印的效果了。
相关文章推荐
- 图片任意位置添加水印
- 图片任意位置添加水印
- c# 添加图片水印,可以指定水印位置+生成缩略图
- 给图片添加图片水印[可按位置,水印图上放大缩小]
- c# 添加图片水印,可以指定水印位置+生成缩略图
- javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
- C# 给站点指定位置的某种格式的图片添加水印
- c# 添加图片水印,可以指定水印位置+生成缩略图
- javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
- Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)
- 1.3 实现图片压缩、添加文字或图片水印、指定位置裁剪等功能的ImageUtility(内有效果图)
- c# 添加图片水印,可以指定水印位置+生成缩略图
- 用PHP对一张图片进行九宫格位置的随机水印添加 (个人学习笔记)
- c# 添加图片水印,可以指定水印位置+生成缩略图
- 1.3 实现图片压缩、添加文字或图片水印、指定位置裁剪等功能的ImageUtility(内有效果图) (转)
- php 给图片添加文字水印 可控制位置,旋转,多行文字
- Swift - 给图片添加文字水印(图片上写文字,并可设置位置和样式)
- c# 添加图片水印,可以指定水印位置+生成缩略图
- 向图片任意位置添加logo