Android 图片加水印
首先可以肯定 java.awt 在android中是不可用的
直接上代码:
/** * * @param src 原图片 * @param watermark 要打的水印图片 * @param title 要打的水印文字 * @param densityDpi 屏幕位深密度 * @return Bitmap 打好水印的图片 */ public static Bitmap createBitmap(String file, Bitmap watermark, String title,int densityDpi) { int dpi = densityDpi; LogPrint.Print("watermark===createBitmap====dpi"+dpi); // 读取原图片信息 File srcImgFile = new File(file); Bitmap roratesrc = BitmapFactory.decodeFile(file); Bitmap src = rorateBitamp(90, roratesrc); if (src == null) { return null; } int srcWidth = src.getWidth(); int srcHeight = src.getHeight(); Paint paint = new Paint(); // ARGB_8888 Bitmap newb = Bitmap .createBitmap(srcWidth, srcHeight, Config.ARGB_8888);// 创建一个新的和src长度宽度一样的位图 // 把创建的位图作为画板 Canvas cv = new Canvas(newb); // 在0,0坐标开始画入src cv.drawBitmap(src, 0, 0, paint); if (watermark != null) { int ww = watermark.getWidth(); int wh = watermark.getHeight(); paint.setAlpha(50); // cv.drawBitmap(watermark, srcWidth - ww + 1, srcHeight - wh +1,paint);// 在src的右下角画入水印 cv.drawBitmap(watermark, 1, 1, paint);// 在src的左上角画入水印 } // 加入文字 if (title != null) { String familyName = "宋体"; Typeface font = Typeface.create(familyName, Typeface.NORMAL); TextPaint textPaint = new TextPaint(); textPaint.setColor(Color.WHITE); textPaint.setTypeface(font); if(dpi <= 120){//qvga 240X400 textPaint.setTextSize(5); }else if(dpi <= 160){//hvga 320X480 textPaint.setTextSize(8); }else if(dpi <= 240){//wvga 480X800 textPaint.setTextSize(10); if (Configs.WIDTH > 700) { textPaint.setTextSize(15); } }else if(dpi <= 320){// 1280*720 textPaint.setTextSize(15); if (Configs.WIDTH > 2000 ) { textPaint.setTextSize(72); } }else { //更大屏幕分辨率 textPaint.setTextSize(72); } // 这里是自动换行的 StaticLayout layout = new StaticLayout(title, textPaint, srcWidth, Alignment.ALIGN_NORMAL, 1.0F, 0.0F, true); layout.draw(cv); // 文字加在左上角 //cv.drawText(title,40,40,paint); } else { paint.setColor(Color.WHITE); paint.setTextSize(20); cv.drawText("测试", 1, 1, paint); } cv.save(Canvas.ALL_SAVE_FLAG);// 保存 cv.restore();// 存储 ByteArrayOutputStream baos = new ByteArrayOutputStream(); newb.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] bytes = baos.toByteArray(); try { FileOutputStream fileOutputStream = new FileOutputStream(srcImgFile); fileOutputStream.write(bytes); fileOutputStream.flush(); fileOutputStream.close(); } catch (IOException e) { e.printStackTrace(); } return newb; }
示例:
//图片添加文字水 if (mlocation != null) { BitmapUtils.createBitmap(mPictureFile.getAbsolutePath(), null,"经纬度:"+mlocation.getLongitude()+","+mlocation.getLatitude()+"\t\t角度:"+mlocation.getBearing()+"度\t\t"+"方向:"+sensorOrientation+"度\t\t速度:"+mlocation.getSpeed()+"公里/小时\n拍摄时间:"+imageFormat.format(System.currentTimeMillis()),getResources().getDisplayMetrics().densityDpi); }else { BitmapUtils.createBitmap(mPictureFile.getAbsolutePath(), null,"经纬度:"+0+","+0+"\t\t角度:"+0+"度\t\t"+"方向:"+sensorOrientation+"度\t\t速度:"+0+"公里/小时\n拍摄时间:"+imageFormat.format(System.currentTimeMillis()),getResources().getDisplayMetrics().densityDpi); }
相关推荐
在Android开发中,添加水印图是一项常见的需求,特别是在创建个性化应用或者处理用户上传的图片时。本教程将深入探讨如何实现图片上的水印功能,同时结合View的拖拽、放大、缩小以及保存至本地的功能。 首先,我们...
在这个特定的压缩包"android图片加水印效果.rar"中,我们可以推测其主要内容是关于如何在Android应用中添加水印到图片的技术实现。下面我们将详细探讨这一主题。 首先,添加水印到图片通常包括两个主要步骤:水印的...
在Android平台上,为视频添加水印是一项常见的任务,可以用于品牌宣传、个性化定制或版权保护。FFmpeg是一个强大的跨平台的音频和视频处理工具,它提供了丰富的功能,包括视频合成和水印添加。本篇文章将深入探讨...
本文将详细讲解如何在Android中实现图片加图片Logo水印以及文字水印,并探讨它们在不同位置的设置方法。 首先,我们需要理解Android的图像处理基础。Android提供了丰富的图像处理API,包括Bitmap类用于表示位图,...
在Android应用开发中,为相机功能添加水印是一项常见的需求,尤其对于那些希望增强用户体验或者保护用户创作版权的应用来说更是如此。"Android Camera添加水印(编码)"这一主题主要涉及如何在用户拍摄照片或录制视频...
在Android开发中,给图片添加水印是一项常见的需求,它涉及到图像处理技术,主要利用了Bitmap、Matrix和Canvas这三个核心类。以下将详细介绍如何在Android中实现这一功能。 首先,Bitmap是Android中用于存储和操作...
Android图片添加水印图片并把图片保存到文件存储的实现代码 Android图片添加水印图片并把图片保存到文件存储的实现代码主要介绍了如何在Android中将图片添加水印图片并保存到文件存储中。下面是对该实现代码的详细...
android添加图片水印,动态添加
在Android开发中,为整个页面添加水印是一项常见的需求,比如为了保护版权或者增强视觉效果。本示例("android:给整个页面添加上水印")提供了一种实现方式,它可以在不干扰其他控件的情况下,优雅地将水印叠加到...
在Android开发中,有时我们需要为显示的图片添加水印,以保护版权或者增强用户体验。`Android imageview添加水印`这个话题就是关于如何在ImageView组件上动态地添加水印。通常,我们可以通过自定义ImageView控件来...
图片加水印用于保护版权或者增加品牌标识,通常包括文字、图标或图片形式。在Android中实现水印的方法有: 1. Canvas绘图: 创建一个与源图片相同大小的Bitmap,利用Canvas在上面绘制水印文本或图片,然后保存为新...
然后在onActivityResult()中解析选择的图片,并同样进行添加水印的操作。 在实际应用中,可能还需要考虑权限问题,如访问相机和存储的权限。从Android 6.0(API level 23)开始,运行时权限管理需要在应用运行时...
本实例源码提供了Xamarin.Android应用中相机的使用方法,包括拍摄照片和添加水印的功能,这对于创建图像处理或者社交媒体类应用至关重要。下面将详细解释这个实例中的关键知识点。 1. **启动相机**: 在Xamarin....
拍照后,我们可以在图片上添加水印。这通常通过处理Bitmap对象完成,可以使用Canvas类的drawText或drawBitmap方法来绘制文字或图像。水印的位置、大小、透明度等属性可以根据需求调整。完成加水印后,将处理后的...
在Android开发中,图片...总结,Android图片水印技术涉及图像处理、Canvas绘图等多个方面。通过学习和实践`WaterMarkImageDemo`项目,开发者可以掌握这一技能,并在此基础上进行创新和优化,满足各种应用场景的需求。
"Android图片添加水印技术详解" Android图片添加水印是指在Android应用程序中对图片进行水印处理,以便添加版权信息、logo、日期、时间等信息。本篇文章将详细介绍Android图片添加水印的技术实现,包括图片工具类的...
现在我们想要往图片上打上水印,该水印应符合这样的需求的: 1. 支持logo+文字; 2. 文字信息支持多行展示; 3. 用户可以选择水印在图片上的生成位置(左上、右上、右下和左下)。 现在提供这样的一种思路去实现这一...
在Android平台上,为图片添加水印是一项常见的任务,尤其在开发具有照相功能的应用时,我们可能希望在用户拍摄的照片上实时添加个性化水印。本文将深入探讨如何使用Android的图像处理技术来实现这一功能。 首先,...
在Android平台上,为图片添加水印是一项常见的需求,尤其在照片编辑或个性化定制应用中。本文将详细探讨如何高效地在Android系统上实现这一功能,主要基于Google的Camera API进行开发,以实现在拍照时即时添加水印的...
之前有人反馈之前上传的下载不了,我再次上传一次,如果有问题及时给我发邮件,或者可以关注一下我,给我发私信,咱们互相学习!(android端代码,FFmpeg实现为视频加水印, 邮箱:1213236113@qq.com)