如何解决我应该如何在 Android 中为图像添加水印效果?
我是 android 新手,我想在捕获的图像上添加水印效果,从 2 天起我一直在尝试为它找到解决方案,但仍然无法在捕获的图像上添加水印效果有人可以帮助我我做错了什么在我下面的代码中..
我想在图像底部中间添加水印效果
代码
private void onCaptureImageResult(Intent data) {
Bitmap photo;Bitmap watermark_bitmap=null;
String selectedFilePath = null;
if (data.getExtras().get("data") != null) {
photo = (Bitmap) data.getExtras().get("data");
watermark_bitmap=Utilities.mark(this,photo,"Hello World",true);
Uri contentUri = Utilities.getImageUri1(
this,watermark_bitmap);
selectedFilePath = ImageFilePath.getPath(
this,contentUri);
newMeter_image.setImageBitmap(watermark_bitmap);
}
public static Bitmap mark(Context context,Bitmap src,String watermark,boolean underline) {
int w = src.getWidth();
int h = src.getHeight();
Bitmap result = Bitmap.createBitmap(w,h,src.getConfig());
Canvas canvas = new Canvas(result);
canvas.drawBitmap(src,null);
Paint paint = new Paint();
int color = ContextCompat.getColor(context,R.color.black);
paint.setColor(color);
paint.setAlpha(1);
paint.setTextSize(5);
paint.setAntiAlias(true);
paint.setUnderlineText(underline);
canvas.drawText(watermark,50,paint);
return result;
}
解决方法
我也会使用相同的方法。
-
在画布中加载图像。
Canvas canvas = new Canvas(result); canvas.drawBitmap(src,null);
-
设置油漆并在您想要的位置绘制水印的文本/可绘制/位图。
-
不要使用硬编码值 (50,50),而是尝试使用计算值。
canvas.drawText("水印",canvas.width/2,canvas.height/2,油漆)
这将使水印成为图像的一部分。 如果您想将其分开但创建水印的错觉,那么您可以在 imageView 中将水印显示为 src 并将其覆盖在您的实际图像显示视图上。
对不起,如果我误解了。不过请分享一个更好的解决方案!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。