圖片擦除

圖片擦除實現(xiàn)步驟

  • 加載圖片,并添加拖動手勢;另外加載一張背景圖片,用于圖片被擦除后顯示,置于擦除圖片下方

  • 開啟位圖上下文(與圖片大小一致)

  • 獲取當(dāng)前位圖上下文

  • 將圖片控件的layer通過renderInContex繪制到位圖上下文中

  • 清除上下文中某一部分

  • 從上下文中獲取這張圖片

  • 關(guān)閉上下文

  • 將擦除后的圖片顯示回控件中

// 加載圖片,并添加拖動手勢;另外加載一張背景圖片,用于圖片被擦除后顯示,置于擦除圖片下方,已通過storyboard實現(xiàn)

//監(jiān)視拖動
- (IBAction)pan:(UIPanGestureRecognizer *)sender {

// 開啟位圖上下文
    UIGraphicsBeginImageContextWithOptions(sender.view.bounds.size, NO, 0);

// 獲取當(dāng)前位圖上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();

// 渲染控件,相當(dāng)于控件的layer圖層加載到位圖上下文中
    [sender.view.layer renderInContext:ctx];

//  清除上下文中某一部分
    //獲取當(dāng)前觸摸點
    CGPoint curP =[sender locationInView:sender.view];

    //計算擦除區(qū)域
    CGFloat wh = 30;
    CGFloat x = curP.x - wh * 0.5;
    CGFloat y = curP.y - wh * 0.5;
    CGRect clearR = CGRectMake(x, y, wh, wh);

    // 核心代碼
    CGContextClearRect(ctx, clearR);

// 從上下文中生成一張圖片
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

// 關(guān)閉上下文
    UIGraphicsEndImageContext();

// 將擦除后的圖片顯示回控件中
    UIImageView *imageV = (UIImageView *)sender.view;
    imageV.image = image;

}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 福利來襲之用蒼老師神圖做圖片擦拭小案例 先看效果: 圖片擦除思路. 弄兩個不同的圖片.上面一張, 下面一張. 添加...
    onlychenj閱讀 1,681評論 0 0
  • 1.圓形圖片裁剪 目標(biāo)明確: 得到一張圖片 (=> 位圖上下文,手動開啟和關(guān)閉,代碼位置任意)思路:先設(shè)置好位圖上...
    夏天不冷閱讀 923評論 0 1
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,388評論 25 708
  • 1、思路分析 拖動的時候,擦除圖片的某一部分 手指拖拽的時候,清除指定位置,確定矩形區(qū)域,把控件上的內(nèi)容渲染到上下...
    iOS_成才錄閱讀 640評論 0 1
  • 文/添一抹嵐 上個星期,天氣好得出奇。早晨沒有霧氣繚繞,也無需撥開暗云方見天,早早地,朝陽便照耀大地。 這樣美好的...
    添一抹嵐閱讀 747評論 25 14

友情鏈接更多精彩內(nèi)容