`
helloandroid
  • 浏览: 275811 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
107f8db3-b009-3b79-938a-dafddb49ea79
Android腾讯微博客户...
浏览量:95727
社区版块
存档分类
最新评论

利用Camera实现图片叠加效果

阅读更多
先看看效果:


主要是利用了android.graphics.Camera类和android.graphics.Matrix还有处理View的onTouchEvent事件

 @Override
	protected void onDraw(Canvas canvas) {
		 super.onDraw(canvas);
		 transformationImage(canvas,list.size());
	}


private void transformationImage(Canvas canvas,int size){
		Paint paint = new Paint();
		//paint.setAlpha(230);
		paint.setAntiAlias(true);
		for(int i = 0 ;i<size;i++){
			mCamera.save();
				mCamera.translate((size-i)*10.0f, 0.0f,-60.0f*(size-i));
				mCamera.rotateY(-30.0f);
				mCamera.getMatrix(matrix);
				
				matrix.preScale((float)(i+1)/(float)(size), (float)(i+1)/(float)(size));
				matrix.preTranslate(-centerX, -centerY);
				matrix.postTranslate(centerX, centerY);
				canvas.drawBitmap(list.get((5-currentIndex+i)%5), matrix, paint);
			mCamera.restore();
		}
	}


 @Override
	 public boolean onTouchEvent(MotionEvent event) {
		 int x = (int) event.getX();
		 int y = (int) event.getY();
		 
		 int dx;
		 int dy;
		  
		  switch(event.getAction()) {
		  case MotionEvent.ACTION_DOWN:
			  mLastMotionX = x;
			  mLastMotionY = y;
			  break;
		  case MotionEvent.ACTION_MOVE:
			   dx = x - mLastMotionX;
			   dy = y - mLastMotionY;
			   mLastMotionX = x;
			   mLastMotionY = y;
			   if(dx<0&&Math.abs(dx)>30){
				   currentIndex--;
				   if(currentIndex<1){
					   currentIndex = 5;
				   }
			   }else if(dx>0&&Math.abs(dx)>30){
				   currentIndex++;
				   if(currentIndex>5){
					   currentIndex = 1;
				   }
			   }
			   break;
		  case MotionEvent.ACTION_UP:
			  break;
		  }
		 invalidate();
		 return true;
	 }
	 
	 @Override
	 public void dispatchDraw(Canvas canvas) {
		  super.dispatchDraw(canvas);
	 }

  • 大小: 74.8 KB
  • 大小: 53.3 KB
分享到:
评论

相关推荐

    Image On Camera 视频叠加图片

    "Image On Camera 视频叠加图片"这个主题就是关于如何在摄像头捕获的实时视频流中添加图像或特效,以增强视觉效果或进行信息展示。下面将详细介绍这一技术及其相关知识点。 一、视频叠加图片原理 视频叠加是指在...

    自定义Camera实现头像框效果,并裁剪指定区域合成

    通过调整两个Bitmap的Alpha值,可以控制它们的叠加效果。 在实现过程中,需要注意兼容不同设备的摄像头参数,如旋转角度、分辨率等。可以使用Camera.getParameters()获取设备的相机参数,并根据需要进行调整。同时...

    android隐藏拍照无卡顿操作

    Camera2 API提供更高级别的控制,可以更好地实现无声拍照和无卡顿的体验。它允许直接访问硬件参数,比如快门声音,可以关闭以实现无声拍照。 3. **线程管理**:拍照过程通常在主线程中执行,可能导致UI卡顿。为避免...

    安卓Android源码——常用图片特效处理源码.zip

    4. 裁剪圆角:可以利用PorterDuffXfermode和Paint对象,通过画布(Canvas)的drawARGB()方法将背景填充为透明,再绘制带有圆角矩形Path的Bitmap,实现图片圆角效果。 5. 图片滤镜:Android的ColorFilter可以实现...

    Android 常用图片特效处理源码.rar

    利用RenderScript或自定义Shader可以实现图片的模糊效果,这在创建背景或者半透明遮罩时很有用。 10. **图片压缩**: 为了节省存储空间和网络传输时间,Android开发者通常会使用Bitmap的compress方法或者使用第三...

    WPF 3D相册效果+半透明玻璃【源码】

    在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 中实现3D相册效果以及半透明玻璃界面。WPF是.NET Framework的一部分,提供了一种强大的方式来创建丰富的、交互式的用户界面,包括3D图形和...

    Android实现动态向Gallery中添加图片及倒影与3D效果示例

    倒影效果的实现通常需要创建图片的镜像并将其叠加在原始图片下方。在Android中,可以通过绘制图片到一个`Bitmap`,然后对这个`Bitmap`进行垂直翻转,最后将翻转后的`Bitmap`与原`Bitmap`合并来实现。这部分代码可能...

    (0170)-iOS/iPhone/iPAD/iPod源代码-其他(Others)-Camera Gun

    在"Camera Gun"应用中,AR技术被用于创建一个瞄准器的视觉效果,当用户开启摄像头时,这个瞄准器图像会出现在屏幕中央,仿佛是透过镜头看到的真实物体。 实现这样的功能,需要iOS开发中的关键组件,包括...

    自定义相机和图片添加水印

    自定义相机允许用户根据特定的需求定制拍摄界面和功能,而图片添加水印则是为了保护版权或增加视觉效果。下面我们将深入探讨这两个主题。 **自定义相机** 自定义相机的实现通常涉及到以下几个关键步骤: 1. **...

    GlCamera.zip

    5. **纹理坐标映射**:在实现水印效果时,需要将水印图片(通常是一个位图)转换为纹理,并映射到相机预览的适当位置。这涉及到设置正确的纹理坐标和坐标变换矩阵。 6. **帧缓冲对象(Frame Buffer Object, FBO)**...

    OpenGL 解决边录像边拍照

    5. **添加水印**:为了在视频或照片上添加水印,我们需要创建一个额外的纹理,加载水印图片,然后在渲染过程中将它叠加到视频帧或照片上。可以通过修改顶点坐标和纹理坐标实现位置和大小的调整。 6. **服务中运行**...

    Android图像处理技术

    - PorterDuff模式:用于混合图像或图形,实现叠加效果。 - RenderScript:Android提供的低级计算框架,可用于高性能的图像处理任务。 5. **相机与多媒体** - Camera API:用于控制设备的摄像头,获取原始图像...

    Photoshop新手必看

    11. **图层样式**:掌握叠加效果,如投影、内阴影、外发光、内发光、斜面和浮雕等,为图层添加立体感和质感。 12. **动作和批处理**:记录一系列操作为动作,可以批量应用于相似的图像,提高工作效率。 13. **智能...

    当下最流行的相机挂件,在人脸的眼睛、鼻子、嘴等部位添加一些挂件,达到娱乐的效果.rar

    这篇内容将深入探讨Android平台下相机挂件的实现原理和相关技术,以及如何利用源码实现这一功能。 首先,我们需要理解Android的相机框架。Android系统提供了一个完整的相机API,允许开发者访问设备的摄像头硬件,...

    Media-Effects:Andorid 媒体效果

    例如,使用Matrix类可以实现图像的旋转和缩放,使用 Porter-Duff 混合模式可以实现图像的叠加效果。 2. 音频处理:可能涉及到音频的混音、音量控制、回声消除等功能。例如,AudioTrack类可以用来播放音频,而Audio...

    ps高级题库素材大全

    11. ** Camera Raw 工具**:学习如何使用Camera Raw处理RAW格式的图片,进行曝光、对比度、白平衡等参数调整。 12. **非破坏性编辑**:通过智能对象和调整图层实现非破坏性编辑,保留原始数据并随时回溯修改。 ...

    StickerCamera.zip

    应用需要解析这些图片,并将其叠加在摄像头预览或已拍摄的图片上。这涉及到坐标系统转换、尺寸适配以及透明度处理等技术。 3. **手势识别**:为了允许用户调整贴纸的位置和大小,应用通常会实现手势识别功能,比如...

    CSS文字背景图

    - 图标叠加:将Font Awesome图标作为背景图,可以实现文字与图标的完美融合,例如`background-image: url('icon.svg');`。 4. **响应式设计**: - Font Awesome的图标因为基于字体,所以天生具有良好的缩放特性,...

    PHOTOSHOP高光素材

    Photoshop是一款全球广泛使用的图像处理软件,由Adobe公司开发,被专业设计师和摄影爱好者用于编辑、修复、合成图片,以及创建引人注目的视觉效果。在这个"PHOTOSHOP高光素材"压缩包中,我们可以推测它包含了一系列...

Global site tag (gtag.js) - Google Analytics