UI知識小集

1.屏幕截圖

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

? ? ? ? // 1. 創建一個與控制器view一樣大的圖形上下文

? ? ? ? UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, 0.0);

? ? ? ? // 1.1 獲取當前上下文

? ? ? ? CGContextRef ctx = UIGraphicsGetCurrentContext();

? ? ? ? // 2. 把控制器的view中的內容渲染到上下文中

? ? ? ? [self.view.layer renderInContext:ctx];

? ? ? ? // 3. 從上下文中獲取圖片

? ? ? ? UIImage* img = UIGraphicsGetImageFromCurrentImageContext();

? ? ? ? // 4. 關閉上下文

? ? ? ? UIGraphicsEndImageContext();

? ? ? ? // 5. 把屏幕截圖保存到相冊

? ? ? ? UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil);

? ? });

2.圖片加水印

? ?// 1. 加載原圖

? ? UIImage* img = [UIImage imageNamed:@"imageName"];

? ? // 2. 根據原圖的大小, 創建一個Bitmap的圖形上下文

? ? UIGraphicsBeginImageContextWithOptions(img.size, NO, 0.0);

? ? // 3. 把原圖繪制到上下文中

? ? [img drawAtPoint:CGPointZero];

? ? // 4. 繪制水印(水印文字、水印圖片)

? ? // 4.1 繪制水印文字

? ? NSString* strMsg = @"水印文字";

? ? NSDictionary* attrs = @{

? ? ? ? NSFontAttributeName : [UIFont systemFontOfSize:25],

? ? ? ? NSForegroundColorAttributeName : [UIColor redColor]

? ? };

? ? [strMsg drawAtPoint:CGPointMake(30, 30) withAttributes:attrs];

? ? // 4.2 繪制圖片水印

? ? // 4.2.1 加載水印圖片

? ? UIImage* imgWatermark = [UIImage imageNamed:@"logo"];

? ? CGFloat margin = 20;

? ? CGFloat w = 200;

? ? CGFloat h = 80;

? ? CGFloat x = img.size.width - w - margin;

? ? CGFloat y = img.size.height - h - margin;

? ? [imgWatermark drawInRect:CGRectMake(x, y, w, h)];

? ? // 5. 從上下文中取出繪制好的圖片

? ? UIImage* imgFinal = UIGraphicsGetImageFromCurrentImageContext();

? ? // 6. 關閉上下文

? ? UIGraphicsEndImageContext();

? ? // 7. 保存圖片

? ? UIImageWriteToSavedPhotosAlbum(imgFinal, nil, nil, nil);

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • --繪圖與濾鏡全面解析 概述 在iOS中可以很容易的開發出絢麗的界面效果,一方面得益于成功系統的設計,另一方面得益...
    韓七夏閱讀 2,796評論 2 10
  • Quartz2D以及drawRect的重繪機制字數1487 閱讀21 評論1 喜歡1一、什么是Quartz2D Q...
    PurpleWind閱讀 808評論 0 3
  • 原文 在這里總結一些iOS開發中的小技巧,能大大方便我們的開發,持續更新。 1.UITableView的Group...
    無灃閱讀 794評論 0 2
  • 1、禁止手機睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa閱讀 1,144評論 1 6
  • 前方高能預警!一大波賣萌耍酷的萌寵來襲,做好準備! 賣萌撒嬌和耍酷,你家萌寵愛干啥? 家有萌寵,如有一寶,賣萌撒嬌...
    輕淺vv時光閱讀 218評論 0 0