作者fake01 (ya da)
看板AndroidDev
标题[问题] 拍照後的图片 加上文字
时间Fri Jun 29 13:45:14 2012
写了一个照相机的功能,想在拍照後的照片,加上文字
看了很多范例,先写一个主要的java档,里面只有一个
Button,按下button後,
preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback);
里面的三个函式,也写在同一个java
然後还有另一个prview.java 档
里头就是一些照相机的设置,就像下列
其中的draw函式,是我想在拍摄後的图片,加上yes这个字,
但是每次拍照後,所存下的档案,里头都没有任何文字出现
该怎麽解决呢
拜托大大们了
package cgt.test;
import java.io.IOException;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.hardware.Camera.PreviewCallback;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
class Preview extends SurfaceView implements SurfaceHolder.Callback
{
SurfaceHolder surfaceHolder;
public Camera camera;
private Paint paint;
Preview(Context context)
{
super(context);
/* 取得holder */
surfaceHolder = getHolder();
surfaceHolder.addCallback(this);
/* 设定预览Buffer Type */
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public void surfaceCreated(SurfaceHolder holder)
{
/* 若相机非在预览模式,则开启相机 */
camera = Camera.open();
try
{
/* setPreviewDisplay唯一的参数为SurfaceHolder */
camera.setPreviewDisplay(holder);
camera.setPreviewCallback(new PreviewCallback()
{
public void onPreviewFrame(byte[] data, Camera arg1)
{
/* 在此可针对预览图像作一些优化 */
}
});
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void surfaceDestroyed(SurfaceHolder holder)
{
/* 停止Preview */
camera.stopPreview();
camera.release();
camera = null;
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h)
{
/* 建立Camera.Parameters物件 */
Camera.Parameters parameters = camera.getParameters();
/* 设定预览画面大小 */
parameters.setPreviewSize(320, 240);
/* 设定图像格式 */
parameters.setPictureFormat(PixelFormat.JPEG);
/* 将上述设定之参数给Camera */
camera.setParameters(parameters);
/* 立即执行Preview */
camera.startPreview();
}
@Override
public void draw(Canvas canvas)
{
super.draw(canvas);
canvas = surfaceHolder.lockCanvas(null);
paint = new Paint();
paint.setColor(Color.BLUE);
/* 绘制画布 */
canvas.drawColor(Color.BLACK);
/* 於画布绘制图形 */
//canvas.drawRect(new RectF( pLeft,pTop,pRight,pBottom ), paint);
canvas.drawText("yes", 100, 100, paint);
surfaceHolder.unlockCanvasAndPost(canvas);
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.195.132.201