在Android应用程序中我有使用自定义相机视图的照片捕获功能。我正在使用SurfaceHolder.Callback并能够捕获图像。但现在我想在捕获的图像上显示一些文本。 这该怎么做。 下面是我的代码 -
preview.camera.takePicture(shutterCallback, rawCallback, jpegCallback);
和回调方法 -
PictureCallback jpegCallback = new PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
FileOutputStream outStream = null;
long time = 0;
try {
new File(filePath).createNewFile();
outStream = new FileOutputStream(filePath);
outStream.write(data);
captureBtn.setVisibility(View.GONE);
preview.shutdownCamera();
preview.setVisibility(View.GONE);
outStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
Log.d(TAG, "onPictureTaken - jpeg");
}
};
EDITED
我认为我的问题不明确,我想在拍摄的图片上添加水印。请帮忙。
答案 0 :(得分:0)
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setTextSize(20);
canvas.drawText("Some Text", 10, 25, paint);
答案 1 :(得分:0)
检查此代码:
首先在父布局中添加ImageView
和TextView
,然后在其中设置图像。
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(result.getWidth(), result.getHeight());
imgPreview.setLayoutParams(layoutParams);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(result.getWidth(), result.getHeight());
txtPreview.setLayoutParams(params);
然后在父布局中添加它(rlPreview
是父布局):
txtPreview.setText("Enter text which you want to display in image");
txtPreview.setTextSize(5.0f);
rlPreview.addView(imgPreview);
rlPreview.addView(txtPreview);
然后,执行此操作以创建包含文本的图像:
rlPreview.setDrawingCacheEnabled(true);
Bitmap bitmapWithWaterMark = Bitmap.createScaledBitmap( rlPreview.getDrawingCache(), rlPreview.getWidth(), rlPreview.getHeight(), true);
rlPreview.setDrawingCacheEnabled(false);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
Bitmap bmp = bitmapWithWaterMark.compress(Bitmap.CompressFormat.PNG, 0, bytes);
你去!你有带文字的图像。
答案 2 :(得分:0)
您可以使用此布局显示图像:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="250dp"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:scaleType="fitXY"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="20dp"
android:layout_centerHorizontal="true" />
</RelativeLayout>
显示图像后,您可以设置所需的任何文本。