使用CoreGraphices框架实现的图片擦除效果。如下:
//
// EraseImageView.h
// Eraser
//
// Created by scott.8an@gmail.com on 11-11-7.
// Copyright 2011 LittleWorn. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface EraseImageView : UIImageView {
@private
UIImageView *foregroundImageView;
BOOL canErase;
UIImage *backgroundImage;
UIImage *foregroundImage;
}
//init
-(id)initWithFrame:(CGRect)frame
backgroundImage:(UIImage*)bgImage
foregroundImage:(UIImage*)fgImage;
@end
//
// EraseImageView.m
// Eraser
//
// Created by scott.8an@gmail.com on 11-11-7.
// Copyright 2011 LittleWorn. All rights reserved.
//
#import "EraseImageView.h"
@implementation EraseImageView
#pragma mark life cycle
- (void)dealloc {
[super dealloc];
}
- (id)initWithFrame:(CGRect)frame backgroundImage:(UIImage*)bgImage foregroundImage:(UIImage*)fgImage{
self = [super initWithFrame:frame];
if (self) {
// Initialization code.
self.userInteractionEnabled = YES;
self.image = bgImage;
foregroundImageView = [[UIImageView alloc] initWithFrame:frame];
foregroundImageView.userInteractionEnabled = YES;
[foregroundImageView setImage:fgImage];
[self addSubview:foregroundImageView];
[foregroundImageView release];
}
return self;
}
#pragma mark override
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
if ([touch view] == foregroundImageView){
canErase = YES;
}
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch = [touches anyObject];
if (canErase) {
CGPoint currentPoint = [touch locationInView:foregroundImageView];
UIGraphicsBeginImageContext(foregroundImageView.frame.size);
[foregroundImageView.image drawInRect:foregroundImageView.bounds];
CGContextClearRect (UIGraphicsGetCurrentContext(), CGRectMake(currentPoint.x, currentPoint.y, 30, 30));
foregroundImageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
}
}
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
canErase = NO;
}
@end
分享到:
相关推荐
在Android开发中,实现"撕衣服效果"或"擦除图片效果"是一种有趣且吸引用户的交互设计,通常用于游戏或娱乐应用。这种效果是通过在屏幕上动态改变图像的透明度或者部分像素来模拟物体被“撕掉”或“擦除”的视觉效果...
在iOS开发中,实现“擦除图片”的功能是一项有趣且实用的技术挑战,它涉及到图形处理、用户交互以及可能的动画效果。在这个例子中,我们关注的是如何让用户通过滑动手势来擦除图片的部分内容,从而增强用户体验。...
### nRF52840开发指南-上册 #### 一、开发板硬件描述 **1. 功能特点** - **基于Nordic蓝牙低功耗/802.15.4 Soc-nRF52840**: 该开发板采用nRF52840作为核心处理器,支持蓝牙低功耗(BLE)和IEEE 802.15.4无线通信...
在本文中,我们将深入探讨如何使用jQuery和一个名为jquery.eraser.js的插件来创建一个具有图像擦除效果的工具。这个工具模仿了Photoshop中的橡皮擦功能,允许用户在HTML5 Canvas元素上擦除指定部分的图像。这个项目...
合集介绍:包括有USB记录擦除 上网记录擦除 文件擦除等三类擦除工具。可选择多种算法进行擦除文件,是你防护泄漏文件信息的重要法宝。 其中Eraser软件可用于彻底删除指定的文件、擦除回收站内容、清除文件夹入口,...
Canvas提供了丰富的图形绘制和编辑功能,其中之一就是擦除效果。这个效果可以模拟画布上部分区域被擦除,露出背景或者其他底层元素。本文将深入探讨如何在WPF中实现Canvas的擦除效果。 擦除效果通常涉及到透明度和...
STM32系列芯片是基于ARM Cortex-M内核的微控制器,广泛应用于嵌入式硬件设计。在开发过程中,为了保护程序代码的安全性...同时,理解和掌握ST-LINK Utility的使用方法,也是深入学习STM32开发过程中的关键技能之一。
在Android开发中,实现"橡皮擦"效果,即用户可以擦除屏幕上的特定内容,通常涉及到绘图和触摸事件处理。这个功能广泛应用于绘画应用、图像编辑工具等,允许用户自由地擦除画布上的颜色或线条。下面将详细解释如何在...
电信设备-基于移动终端的图片擦除实现方法及装置.zip
AE(ArcEngine)是Esri公司开发的一款强大的GIS(地理信息系统)开发平台,它提供了丰富的API,使得开发者能够创建各种地图应用、空间分析工具以及数据管理解决方案。在本主题中,我们将聚焦于“AE要素擦除工具”,...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和...百度网盘AI大赛-通用场景手写文字擦除赛第4名方案python源码+项目说明.zip
总结来说,通过理解STM32F103的Flash特性,结合智能编程策略、库函数的使用以及IAR开发环境的工具,可以有效地减少Flash的擦除次数,从而延长其使用寿命。在实际应用中,开发者应注重细节,从多个层面综合考虑,以...
总的来说,这个压缩包提供的`nuke.c`和`flash_nuke.uf2`文件是为了帮助树莓派Pico用户进行闪存擦除,以便于开发、调试或恢复出厂设置。理解和使用这些文件需要一定的嵌入式系统知识,特别是对RP2040芯片和C语言编程...
比如将其设置为`destination-out`,就可以使新的绘图区域透明化,达到擦除效果。 7. **保存与恢复状态** 使用`save()`和`restore()`方法可以保存和恢复Canvas的状态,包括绘图样式、变换和裁剪区域等,这对于实现...
在JavaScript(JS)中实现橡皮擦除图片换图的功能是一项常见的前端开发任务,它涉及到图像处理、HTML5 Canvas API的使用以及用户交互的处理。本文将深入探讨如何利用JavaScript来实现在网页上进行类似橡皮擦的效果,...
在本文中,我们将深入探讨如何使用jQuery和HTML5 Canvas API创建一个图像橡皮擦工具,以实现类似Photoshop的...开发人员可以根据需求进一步定制插件,例如添加更多的擦除样式、支持触摸设备或实现更复杂的编辑功能。
Delphi是一种基于Object Pascal的集成开发环境(IDE),它提供了强大的图形处理能力,使得开发者能够轻松实现诸如飞入、擦除、头明、扩散、清除、门帘以及四面八方等视觉效果。 首先,我们需要理解Delphi中的图像...
然而,有时我们需要对这些笔迹进行编辑,包括擦除部分线条或形状,以达到理想的设计效果。"擦除矢量笔迹的方法"这个主题涵盖了这个关键的编辑过程。 矢量笔迹的擦除通常涉及到以下几个步骤和技巧: 1. **选择工具*...
在iOS开发中,实现“橡皮擦”效果是一项常见的需求,尤其当开发者想要创建绘画或者涂鸦类应用时。这个效果允许用户通过手指在屏幕上移动,擦除图像的一部分,模仿真实世界中的橡皮擦功能。在标题和描述中提到的...