iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android实现拍照添加时间水印
  • 658
分享到

Android实现拍照添加时间水印

2024-04-02 19:04:59 658人浏览 安东尼
摘要

本文实例为大家分享了Android实现拍照添加时间水印的具体代码,供大家参考,具体内容如下 效果如下图 : 1、拍照 // 非空判断 拍照  if (mCamera0 != nul

本文实例为大家分享了Android实现拍照添加时间水印的具体代码,供大家参考,具体内容如下

效果如下图 :

1、拍照

// 非空判断 拍照
 if (mCamera0 != null){
                mCamera0.takePicture(null, null, jpeg0); // 1 front
            }

2、创建JPEG数据回调

// 创建JPEG图片回调数据对象
public static PictureCallback jpeg0 = new PictureCallback() {
        @Override
        public void onPictureTaken(byte[] data, Camera camera) {
            try {
                // 获得图片
                Bitmap mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
                //添加时间水印
                Bitmap mTimeWatermark = AddTimeWatermark(mBitmap);
                // 判断文件夹是否存在,传入图片存储路径
                CreateFile(StaticVariables.mPicPath);
 
                String mPath = StaticVariables.mPicPath + System.currentTimeMillis()+".jpeg";       //临时测试命名
 
                File mFile = new File(mPath);
 
                BufferedOutputStream mOutputStream = new BufferedOutputStream(new FileOutputStream(mFile));
                // 将图片压缩到流中
                mTimeWatermark.compress(Bitmap.CompressFORMat.JPEG,100,mOutputStream);      //时间水印
 
                mOutputStream.flush();
                mOutputStream.close();
 
                // 停止预览
                mCamera0.stopPreview();
                mCamera0.release();
                mCamera0 = Camera.open(4);
                Parameters parameters = mCamera0.getParameters();
                // parameters.setPreviewSize(width, height);
                mCamera0.setParameters(parameters);
                mCamera0.setDisplayOrientation(0);
 
                mCamera0.setPreviewTexture(mTextureView0.getSurfaceTexture());
 
                // 处理完数据之后预览
                mCamera0.startPreview();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
 
};

3、添加时间水印:AddTimeWatermark(mBitmap);


    private  Bitmap AddTimeWatermark(Bitmap mBitmap) {
        //获取原始图片与水印图片的宽与高
        int mBitmapWidth = mBitmap.getWidth();
        int mBitmapHeight = mBitmap.getHeight();
      //定义底片 大小 将mBitmap填充  
        Bitmap mNewBitmap = Bitmap.createBitmap(mBitmapWidth, mBitmapHeight, Bitmap.Config.ARGB_8888);
        canvas mCanvas = new Canvas(mNewBitmap);
        //向位图中开始画入MBitmap原始图片
        mCanvas.drawBitmap(mBitmap,0,0,null);
        //添加文字
        Paint mPaint = new Paint();
        String mFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss EEEE").format(new Date());
        //String mFormat = TingUtils.getTime()+"\n"+" 纬度:"+GpsService.latitude+"  经度:"+GpsService.longitude;
        mPaint.setColor(Color.RED);
        mPaint.setTextSize(20);
        //水印的位置坐标
        mCanvas.drawText(mFormat, (mBitmapWidth * 1) / 10,(mBitmapHeight*14)/15,mPaint);
//        mCanvas.save(Canvas.ALL_SAVE_FLAG);
        mCanvas.save();
        mCanvas.restore();
 
        return mNewBitmap;
}

4、创建文件夹

// 创建 文件夹
public static void CreateFile(String path) {
        File destDir = new File(path);
        if (!destDir.exists()) {
            Log.i(TAG,"文件夹创建成功");
            destDir.mkdirs();
        } else {
            Log.i(TAG,"文件夹已存在");
        }
    }

5、Java 实现添加水印


public void addWatermark(String sourceImg, String targetImg,String content, Font font) throws IOException {
        
        File srcImgFile = new File(sourceImg);
        Image srcImg = ImageIO.read(srcImgFile);
 
        int srcImgWidth = srcImg.getWidth(null);
        int srcImgHeight = srcImg.getHeight(null);
 
        BufferedImage bufImg = new BufferedImage(srcImgWidth, srcImgHeight,BufferedImage.TYPE_INT_RGB);
        Graphics2D g = bufImg.createGraphics();
        g.drawImage(srcImg, 0, 0, srcImgWidth, srcImgHeight, null);
 
        g.setColor(Color.BLACK);
        g.setFont(font);
 
        if (content.equals("model")) {
            // 添加 设备名、MADE IN
            g.drawString(content, 350, 110);
            g.drawString(mMade, 50, 340);
        } else {
            // 设置水印的坐标 标题
            g.drawString(content, 50, 115);
        }
        g.dispose();
 
        // 输出图片
        FileOutputStream outImgStream = new FileOutputStream(targetImg);
        ImageIO.write(bufImg, "jpg", outImgStream);
        System.out.println("文字水印添加完成");
        outImgStream.flush();
        outImgStream.close();
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Android实现拍照添加时间水印

本文链接: https://www.lsjlt.com/news/144282.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现拍照添加时间水印
    本文实例为大家分享了Android实现拍照添加时间水印的具体代码,供大家参考,具体内容如下 效果如下图 : 1、拍照 // 非空判断 拍照  if (mCamera0 != nul...
    99+
    2024-04-02
  • Android给图片添加水印
    目录1. 前言2. 方法1 使用SurfaceView3. 方法2 给拍照下来的图片添加水印第一步:获取拍照权限第二步:拍照调用相机进行拍照接收拍照结果注意:第三步:给拍照后得到的图...
    99+
    2024-04-02
  • vue实现页面添加水印
    本文实例为大家分享了vue实现页面添加水印的具体代码,供大家参考,具体内容如下 js文件 建一个watermark.js文件 let setWatermark = (str1, st...
    99+
    2024-04-02
  • Java在Excel中添加水印的实现(单一水印、平铺水印)
    在Excel中没有直接添加水印的功能,但依旧可以通过一定方式来实现类似水印效果。本文通过Java程序代码介绍具体实现方法。可添加单一水印效果,即水印是以单个文本字样来呈现;也可添加多...
    99+
    2024-04-02
  • C#实现为视频添加水印
    目录文章描述开发环境开发工具实现代码实现效果文章描述 以下主要还是使用到了ffmpeg命令,分别实现了给视频添加图片水印以及文字水印。 开发环境 .NET Framework版本:...
    99+
    2023-01-09
    C#视频添加水印 C#视频水印 C# 添加水印
  • java怎么实现添加图片水印和文字水印
    这篇文章主要介绍java怎么实现添加图片水印和文字水印,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!我们经常会在一些图片或者图片上看到某某公司或品牌的水印,那么我们可不可以自己在喜欢的图片或文件上添加水印呢?答案当然...
    99+
    2023-06-09
  • Java实现添加文字水印和图片水印功能
    目录添加水印Java 2D API介绍1.创建一个绘制图形的对象2.绘制基本图形3.绘制文本4.绘制图像5.设置绘制属性绘制文字水印绘制图片水印循环添加文字水印添加水印 为图片添加水...
    99+
    2023-05-18
    Java 文字水印 Java 图片水印
  • Android NDK开发之如何实现FFmpeg视频添加水印
    这篇文章主要介绍Android NDK开发之如何实现FFmpeg视频添加水印,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言Android也是利用FFmpeg命令行的形式(混编),进行视频转码压缩。1.F...
    99+
    2023-06-22
  • vue实现上传图片添加水印
    本文实例为大家分享了vue上传图片添加水印的具体实现代码,供大家参考,具体内容如下 1、封装添加水印方法 export async function addWaterMarke...
    99+
    2024-04-02
  • Python实现为pdf添加水印功能
    目录创建需要的水印模板wps创建输出pdf水印pdf实现步骤安装依赖代码问题使用pypdf2出现编码问题解决方法感悟创建需要的水印模板 wps创建 输出pdf 水印pdf 实现...
    99+
    2024-04-02
  • vue实现页面添加水印效果
    最近在做项目的时候要求给页面加上水印效果,废话不多说直接上代码: export function watermark(settings) { debugger; //默认...
    99+
    2024-04-02
  • SpringBoot实现PDF添加水印的方法
    本篇文章和大家了解一下SpringBoot实现PDF添加水印的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。简介PDF(Portable Document Format,便携式文档格式)是一种流行的文件格式,它可以在...
    99+
    2023-08-03
  • SpringBoot实现PDF添加水印的示例
    目录简介方式1:使用 Apache PDFBox 库(1)添加 PDFBox 依赖(2)添加水印(3)完整代码方式2:使用 iText 库(1)添加 iText 依赖(2)添加水印(...
    99+
    2023-05-20
    SpringBoot PDF添加水印 SpringBoot 添加水印
  • Android中怎么给图片添加水印
    本篇文章为大家展示了Android中怎么给图片添加水印,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Android 图片添加水印的实现方法手机端打水印(文字和图片)使用的是Bitmap、Matrix...
    99+
    2023-05-30
    android
  • Android给图片添加水印的方法
    这篇文章主要介绍Android给图片添加水印的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 前言PS:最近在项目执行过程中有这样一个需求,要求拍完照的图片必须达到以上的效果。需求分析:使用用预览布局Surf...
    99+
    2023-06-15
  • Java实现添加文字水印&图片水印的方法详解
    目录为什么要给图片添加水印绘制文字水印动态计算字符串的宽度自适应文字水印位置绘制图片水印提升图片处理速度为什么要给图片添加水印 为图片添加水印的主要作用是保护图片版权,防止图片被未经...
    99+
    2023-02-06
    Java添加文字水印 Java添加图片水印 Java添加水印
  • Android webview实现拍照的方法
    Android webview实现拍照的方法 html <div id="pnlVideo1"> <input type="hidden" name="imgNric1" id="im...
    99+
    2023-05-30
    android webview 拍照
  • Python批量添加图片水印的实现
    目录一、前言二、文字水印三、图片水印一、前言 现在盗图是非常常见的事情,许多人在使用图片时都不会标注图片的出处或者提及作者,这个时候水印就是个很好的东西了。我们可以给图片添加水印后再...
    99+
    2024-04-02
  • Python利用filestools模块实现水印添加
    在前面的文章中很早有写到关于添加水印的方法,但是过程还是较为复杂,最近发现的这款filestools非标准库其实真正实现添加水印的只要一个函数的调用,一行代码即可完成水印的添加。 通...
    99+
    2024-04-02
  • Android实现控制摄像头拍照
    现在的手机一般都会提供相机功能,有些相机的镜头甚至支持1300万以上像素,有些甚至支持独立对焦、光学变焦这些只有单反才有的功能,甚至有些手机直接宣传可以拍到星星。可以说手机已经变成了...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作