文档章节

Quartz2D打水印

xx明
 xx明
发布于 2014/12/28 19:43
字数 251
阅读 150
收藏 3
    
    UIImage *bgImage = [UIImage imageNamed:@"bg"];
    
    //上下文 : 基于位图(bitmap),所有的东西需要绘制到一张新的图片上去
    
    //1.创建一个基于位图的上下文(开启一个基于位图的上下文)
    //size : 新图片的此处
    //opaque : 不透明度
    //创建一张新的bitmap,也就是新的UIImage对象
    UIGraphicsBeginImageContextWithOptions(bgImage.size, NO, 0.0);
    
    //2.画背景
    [bgImage drawInRect:CGRectMake(0, 0, bgImage.size.width, bgImage.size.height)];
    
    //3.画右下角水印
    UIImage *watermarkImage = [UIImage imageNamed:@"watermark"];
    CGFloat scale = 0.2;
    CGFloat margin = 5;
    CGFloat watermarkW = watermarkImage.size.width * scale;
    CGFloat watermarkH = watermarkImage.size.height * scale;
    CGFloat watermarkX = bgImage.size.width - watermarkW - margin;
    CGFloat watermarkY = bgImage.size.height - watermarkH - margin;
    
    [watermarkImage drawInRect:CGRectMake(watermarkX, watermarkY, watermarkW, watermarkH)];
    NSLog(@"%g",watermarkY);
    
    //4.从上下文中取得制作完毕的UIImange对象
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    
    //5.结束上下文
    UIGraphicsEndImageContext();
    
    //6.将image对象压缩为PNG格式的二进制对象.
    NSData *data = UIImagePNGRepresentation(newImage);
    
    //7写入文件
    NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingString:@"new.png"];
    [data writeToFile:path atomically:YES];
    NSLog(@"%@",path);


© 著作权归作者所有

xx明
粉丝 5
博文 29
码字总数 10912
作品 0
朝阳
私信 提问
iOS图片水印实现

图片水印 1.图片水印即在图片上下文上操作 第一:图片上下文不用在drawRect中写,在viewDidLoad中 第二:图片上下文需要自己手动创建 第三:往后的操作与drawRect的无什么差异 2.具体的看代码...

AppleDream
2016/06/27
63
0
Quartz2D(扇形,曲线,裁剪,水印)

Quartz2D(扇形,曲线,裁剪,水印) (void)drawRect:(CGRect)rect方法重写,此方法中可调用添加的控件 (1)扇形 获取上下文CGContextRef context=UIGraphicsGetCurrentContext(); 绘制弧线C...

细雨微风轻诉流年
2016/08/25
21
0
iOS开发-Quartz2D补充

今天给同学们全面的讲解Quartz2D以及Quartz2D的相关实战例子:例子请参考我个人CSDN之前所发的有关Quartz2D的项目的博文,那么废话不多说,直接上代码~ http://blog.csdn.net/ZZIOSdeveloper -...

zz_iosdeveloper
2018/05/06
0
0
iPhone应用开发演示--iPhone-Poly-Demo

该程序只是为了验证 iPhone 的应用程序开发,学习 iPhone 的开发人员不妨看看。该项目主要包含 iPhone 的一些编程概念包括: MVC patterns: this application uses the Interface Builder an...

匿名
2009/06/01
4.2K
0
Quartz 2D简单介绍

一、什么是Quartz2D Quartz 2D是⼀个二维绘图引擎,同时支持iOS和Mac系统。 我们可以使用Quartz 2D API 来实现许多功能,如基本路径的绘制、透明度、描影、绘制阴影、透明层、颜色管理、反锯齿...

如若初见
2016/03/17
74
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 如果是个帅小伙你愿意和他出去吗

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 小小编辑推荐:《Ghost 》游戏《死亡搁浅》原声 《Ghost 》游戏(《死亡搁浅》原声) - Au/Ra / Alan Walker 手机党少年们想听歌,请使劲儿戳...

小小编辑
25分钟前
23
3
java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
16
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部