Quartz2D打水印

    
    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);
时间: 2024-08-11 13:15:22

Quartz2D打水印的相关文章

7. Quartz2D 绘制水印

#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIImage *image = [self waterMaskImage]; UIImageView *iv = [[UIImageView alloc]initWithImage:image]; [self.view

iOS UI进阶-1.1 Quartz2D 图片水印/裁剪/截图

图片水印 UIImage+MJ.h #import <UIKit/UIKit.h> @interface UIImage (MJ) /** * 打水印 * * @param bg 背景图片 * @param logo 右下角的水印图片 */ + (instancetype)waterImageWithBg:(NSString *)bg logo:(NSString *)logo; @end UIImage+MJ.m #import "UIImage+MJ.h" @imple

Quartz2D 给图片打水印

1. 水印:在图片上加的防止他人盗图的半透明logo.文字.图标  水印作用:告诉你这个图片从哪来的 2. 实现方式:利用Quartz2D,将水印(文字.LOGO)画到图片的右下角 将代码封装成UIImage的分类方法,便于使用 1 + (instancetype)waterImageWithBg:(NSString *)bg logo:(NSString *)logo { 2 UIImage *oldImage = [UIImage imageNamed:bg]; 3 // 1.创建一个基于位

Quartz2D复习(一)--- 基础知识 / 绘制线段圆弧 / 图片水印 / 截图

1.Quartz 2D是一个二维绘图引擎,同时支持ios和Mac系统: Quart2D的API是纯C语言的,API来自于Core  Graphics框架: 2.Quartz 2D可以绘制图形(线段/三角形/矩形/圆和弧).绘制文字.绘制和生成图片.读取/生成pdf.截图/裁剪图片.自定义UI控件等 3.对于界面复杂且个性化的UI,普通的UI控件无法实现,而Quartz2D技术却可以通过自定义UI控件来实现.其实,ios中大部分控件的内容都是通过Quart2D画出来的 4.图形上下文(Graphi

XMG Quartz2D 水印效果。非layer里面手动创建位图上下文,不是layer中drawRect系统自动创建上下文

1. // 1.获取上下文(位图上下文) 这个方法上下文都可以获取.不只是layer上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); 2. 在viewController中 我们需要手动的创建上下文对象.因为系统不会自动为我们生成上下文 0.获取上下文,之前的上下文都是在view的drawRect方法中获取(跟View相关联的上下文layer上下文) // 目前我们需要绘制图片到新的图片上,因此需要用到位图上下文 / 怎么获取位图上下文,

【iOS开发-82】四个案例认识Quartz2D:模拟UIImageView、圆形头像切割、打水印、截屏

(1)效果 (2)源代码下载(素材自己替换) http://download.csdn.net/detail/wsb200514/8183437 (3)总结 --所有这些都可以通过封装,基于UIImage开发自己的category. --图形上下文,有开启UIGraphicsBeginImageContextWithOptions,获取UIGraphicsGetCurrentContext和关闭UIGraphicsEndPDFContext等主要操作,有开启就要由关闭. --其他图片和文字,是直

Quartz2D常见图形的绘制:线条、多边形、圆

UI高级 Quartz2D http://ios.itcast.cn  iOS学院 掌握 drawRect:方法的使用 常见图形的绘制:线条.多边形.圆 绘图状态的设置:文字颜色.线宽等 图形上下文状态的保存与恢复(图形上下文栈) 图片裁剪 截图 什么是Quartz2D Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作 Ø绘制图形 : 线条\三角形\矩形\圆\弧等 Ø绘制文字 Ø绘制\生成图片(图像) Ø读取\生成PDF Ø截图\裁剪图片 Ø自定义

15.ios之Quartz2D

1.什么是Quartz2D ?Quartz2D是一个二维绘图引擎,同时支持iOS和Mac系统 ?Quartz 2D能完成的工作 绘制图形 : 线条\三角形\矩形\圆\弧等 绘制文字 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片 自定义UI控件 2.自定义View 图形上下文 ?图形上下文(Graphics Context):是一个CGContextRef类型的数据 ?图形上下文的作用 保存绘图信息.绘图状态 决定绘制的输出目标(绘制到什么地方去?) (输出目标可以是PDF文件.Bit

IOS开发——UI进阶篇(十五)Quartz2D介绍

一.Quartz2D简介 1.什么是Quartz2DQuartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统 Quartz 2D能完成的工作绘制图形 : 线条\三角形\矩形\圆\弧等绘制文字绘制\生成图片(图像)读取\生成PDF截图\裁剪图片自定义UI控件 2.Quartz2D实例Quartz 2D能做很多强大的事情,例如 裁剪图片 涂鸦\画板 手势解锁 报表:折线图\饼状图\柱状图 二.自定义view 1.Quartz2D在iOS开发中的价值为了便于搭建美观的UI界面,iOS提供了UI