为了添加相框,可以新建一个bitmap,依此实例化一个canvas。然后再上面依次画上原图和相框。
在onPictureTaken()函数里,得到原始bitmap后,得到相框,然后调用融合函数。
Bitmap frame = BitmapFactory.decodeResource(getResources(), R.drawable.border);
Bitmap monBM = montageBitmap(frame, sizeBitmap, 200, 200);
<!-- --><style>#mailContentContainer .txt {height:auto;}</style>
/*将像框和图片进行融合,返回一个Bitmap*/
public Bitmap montageBitmap(Bitmap frame, Bitmap src, int x, int y){
int w = src.getWidth();
int h = src.getHeight();
Bitmap sizeFrame = Bitmap.createScaledBitmap(frame, w, h, true);
Bitmap newBM = Bitmap.createBitmap(w, h, Config.ARGB_8888);
Canvas canvas = new Canvas(newBM);
canvas.drawBitmap(src, x, y, null);
canvas.drawBitmap(sizeFrame, 0, 0, null);
return newBM;
}
程序中frame代表相框,src代表原图,大小为600*800.首先将相框的大小缩放到600*800,然后实例化一个canvas。记住先画原图。这里面有个x、y坐标。
这里是这个api的注释:
public void drawBitmap (Bitmap bitmap, float left, float top, Paint paint)
Added in API level 1
Draw the specified bitmap, with its top/left corner at (x,y), using the specified paint, transformed by the current matrix.
Note: if the paint contains a maskfilter that generates a mask which extends beyond the bitmap's original width/height (e.g. BlurMaskFilter), then the bitmap will be drawn as if it were in a Shader with CLAMP mode. Thus the color outside of the original width/height will be the edge color replicated.
If the bitmap and canvas have different densities, this function will take care of automatically scaling the bitmap to draw at the same density as the canvas.
Parameters
bitmap The bitmap to be drawn
left The position of the left side of the bitmap being drawn
top The position of the top side of the bitmap being drawn
paint The paint used to draw the bitmap (may be null)
看上面的解释,貌似不清楚这个x y坐标到底是谁的坐标,是原图的 还是canvas的?而且如果要画的图超过canvas的大小怎么办?经过实际测试,参考这里,这个x、y坐标是指canvas上的,也就是以canvas上的点(x,y)为顶点,来画图bitmap。如果bitmap的大小超过canvas的大小,就不显示了。下面两组测试图片可以清楚看到。
第一组测试照片(x,y)=(20, 20):
原图:
原图+相框:
第二组(x,y)=(200, 200):
原图:
原图+相框:
可以看到,当传进去的坐标较小时看不出来啥差别。事实上,如果将两个坐标都设为(0,0),看到的是两个同样大小的照片层叠的效果。这就看对相框如何定义了。如果要求不遮挡原图,则需要把原图缩放到rect大小,这个rect是指相框里面的空白(透明)部分大小。然后从canvas的透明部分的左上顶点开始画缩放后的原图。
http://blog.csdn.net/lgl125/article/details/7866930这个链接是给原图加边框的,但不是相框!可以参考。
-----------------------------------------------------------------本文系原创,转载请注明作者:yanzi1225627
分享到:
相关推荐
最近在做一个明信片的项目,明信片就是有相框有图片么,在用户选择喜欢的明信片后,并且要把自己的照片添加到这个明信片上的某个位置,要求:用户可以随意在显示自己照片的位置调节自己的照片。感觉合适后并保存。在...
易语言源码易语言摄像头视频添加相框.rar 易语言源码易语言摄像头视频添加相框.rar 易语言源码易语言摄像头视频添加相框.rar 易语言源码易语言摄像头视频添加相框.rar 易语言源码易语言摄像头视频添加相框.rar ...
资源介绍:。易语言摄像头视频添加相框源码例程程序结合易语言应用接口支持库,可以针对视频的影像加上相框。资源作者:。@易语言代码大全详解。资源下载:。
易语言摄像头视频添加相框.rar
易语言摄像头视频添加相框源码,摄像头视频添加相框,aaa,Win
该资源主要是参考博客http://blog.csdn.net/eastmount/article/details/40627599中实现的android工程,主要包括3个功能,添加相框两种方法、圆角显示图片和图像合成。希望对大家有所帮助,免费资源仅供大家学习分享。...
需要展示瀑布流,但是只是单个的图片展示过于单调。添加相框时需要美工大批量的作图,修改相框还需要从来一遍。于是制定了好多的解决方案,根据实际的需求,最后使用了最灵活的、最美观的实现方案。
Android不规则图片合成,不规则相框合成
Android 给图像添加相框、圆形圆角显示图片、图像合成知识
图片处理sdk(just for eclipse) ...(包括jni本地源码) ...gif mp4 互转 ...图片变形 ...添加相框 com.js.photosdk.scrawl 涂鸦 com.js.photosdk.utils 工具类 jp.co.cyberagent.android.gpuimage 滤镜 li
易语言摄像头视频添加相框
易语言摄像头视频添加相框源码例程程序结合易语言应用接口支持库,可以针对视频的影像加上相框。
仿美图秀秀实现图片相框、贴纸、文字编辑、滤镜功能,相框可以根据 所给的点自动生成对应的相框
Photoshop抠图合成特效:飞出照片相框
Android不规则图片合成,不规则相框合成 [注意:本资源来自网络,如有侵权,请联系我删除,谢谢。]
《google android sdk开发范例大全(第3版)》在上一版的基础上,以android手机应用程序开发(采用android sdk 2.3.3)为主题,超过200多个范例全面且深度地整合了手机、网络及服务等多个开发领域,为读者提高程序设计...
这个是一个可以实时滤镜的录制视频,对照片进行滤镜相框处理的代码
然后对图片进行需求处理,比如对图片添加相框、旋转并叠加图片、显示图片所在目录等。接下来实现对特殊事件的处理,比如鼠标、键盘的响应和图片被删除等情况。最后对软件进行合理的测试并修改BUG
DELPHI编写的用摄像头拍摄标准半身照(150*210)程序。