首页 > 其他分享 >直播软件搭建,生成二维码及添加logo

直播软件搭建,生成二维码及添加logo

时间:2023-07-05 14:23:00浏览次数:35  
标签:scaleSize canvas int Bitmap width 二维码 直播 logo height

直播软件搭建,生成二维码及添加logo

    @Override
    public Bitmap generateBitmap(String content, int width, int height) {
        QRCodeWriter qrCodeWriter = new QRCodeWriter();
        Map<EncodeHintType, String> hints = new HashMap<>();
        hints.put(EncodeHintType.CHARACTER_SET, "utf-8");//默认
//        hints.put(EncodeHintType.MARGIN, "1");//无白色边框
        try {
            BitMatrix encode = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hints);
            int[] pixels = new int[width * height];
            for (int i = 0; i < height; i++) {
                for (int j = 0; j < width; j++) {
                    if (encode.get(j, i)) {
                        pixels[i * width + j] = 0x00000000;
                    } else {
                        pixels[i * width + j] = 0xffffffff;
                    }
                }
            }
            return Bitmap.createBitmap(pixels, 0, width, width, height, Bitmap.Config.RGB_565);
        } catch (WriterException e) {
            e.printStackTrace();
        }
        return null;
    }
 
    @Override
    public Bitmap addLogo(Bitmap qrBitmap, Bitmap logoBitmap) {
        int qrBitmapWidth = qrBitmap.getWidth();
        int qrBitmapHeight = qrBitmap.getHeight();
        int logoBitmapWidth = logoBitmap.getWidth();
        int logoBitmapHeight = logoBitmap.getHeight();
        Bitmap blankBitmap = Bitmap.createBitmap(qrBitmapWidth, qrBitmapHeight, Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(blankBitmap);
        canvas.drawBitmap(qrBitmap, 0, 0, null);
        canvas.save(Canvas.ALL_SAVE_FLAG);
        float scaleSize = 1.0f;
        while ((logoBitmapWidth / scaleSize) > (qrBitmapWidth / 3.5) || (logoBitmapHeight / scaleSize) > (qrBitmapHeight / 3.5)) {
            scaleSize *= 2;
        }
        float sx = 1.0f / scaleSize;
        canvas.scale(sx, sx, qrBitmapWidth / 2, qrBitmapHeight / 2);
        canvas.drawBitmap(logoBitmap, (qrBitmapWidth - logoBitmapWidth) / 2, (qrBitmapHeight - logoBitmapHeight) / 2, null);
        canvas.restore();
        return blankBitmap;
    }

​以上就是 直播软件搭建,生成二维码及添加logo,更多内容欢迎关注之后的文章

 

标签:scaleSize,canvas,int,Bitmap,width,二维码,直播,logo,height
From: https://www.cnblogs.com/yunbaomengnan/p/17528382.html

相关文章

  • 直播商城源码,加载网页、html文件显示加载进度
    直播商城源码,加载网页、html文件显示加载进度新建加载WebViewActivity新建WebViewActivity加载网页html文件 classWebViewActivity:AppCompatActivity(){     overridefunonCreate(savedInstanceState:Bundle?){    super.onCreate(savedInstanceSta......
  • 【AI新趋势期刊#2】AI发明计算机算法,如何给大模型排行,照片秒变二维码,视频一键动漫风
    前言每天都要浏览大量AI相关新闻,是不是感到信息量爆炸,有效信息少?这么多新产品和新工具,到底哪些是真正是有价值的,哪些只是浮躁的一时热点?想参与AI产品和工具的开发,从哪里能够获得大量的灵感和思路?我会把AI相关的新趋势、新想法、新思路,和成熟AI产品、工具、模型等整理在这里,帮......
  • 语音直播源码知识分享:探索新的沟通方式
     语音直播是一种借助在线平台或应用程序进行实时语音传输的形式,它在互联网发展的背景下逐渐兴起,并受到越来越多人的关注和喜爱。 随着互联网的快速发展和社交媒体的普及,传统文字、图像的沟通方式已经无法满足人们日益增长的交流需求。在这个背景下,语音直播作为一种创新的沟通......
  • 探秘高逼格艺术二维码的制作过程-AI绘画文生图
    前几天看到几个逼格比较高的二维码,然后自己动手做了一下,给大家看看效果:1、文生图(狮子):2、文生图(城市): 下边将开始介绍怎么做的,有兴趣的可以继续读一读。这里使用的AI绘图工具是StableDiffusion,没有的同学需要去部署一个,计算平台国内建议使用AutoDL,国外可以白嫖Kaggle的......
  • 直播源码开发,js 数据的创建时间是否大于30天或相隔天数
    直播源码开发,js数据的创建时间是否大于30天或相隔天数//获取当前时间varday=newDate();//数据库的数据创建时间vartime=creationTime;//把当前时间数据库时间转换成毫秒数varstarDate=Date.parse(time);varendDate=Date.parse(day);//当前时间毫秒数减去创建时间......
  • 直播系统搭建,随机验证码的生成
    直播系统搭建,随机验证码的生成在JavaScript中,有个随机生成数字的函数叫Math.random(),它能生成0~1之间的数字,下面我给大家简单列了个例子: <head><metacharset="utf-8"><title>随机验证码的生成</title></head><style>#number{width:130px;height:30px;text-align:center;line......
  • 直播平台搭建源码,multiple-select 单选框多选框的用法
    直播平台搭建源码,multiple-select单选框多选框的用法         <divclass="row">            <divclass="col-sm-11">              <divclass="input-group">            ......
  • 【直播预告】HarmonyOS极客松赋能直播第四期:HarmonyOS开发经验分享
        ......
  • 直播软件开发,TextView内容过多,超过n行显示“...全文”
    直播软件开发,TextView内容过多,超过n行显示“...全文” /**   *TextView超过两行,末尾显示"...全文"   *为避免抖动,需在xml中设置TextView的maxHeight   *@parammaxLine最多几行   *@paramstrNum 末尾显示字符数   *@paramstr 末尾显示字......
  • 视频直播源码,三段式(抽屉式)底部弹窗BottomSheet
    视频直播源码,三段式(抽屉式)底部弹窗BottomSheet自定义View继承CoordinatorLayout  /** *CreatedbyzGuion2022/7/11. *三段式底部弹窗 */classThreeBottomSheet:CoordinatorLayout{  privatevarmBinding:IncludeBottomSheetBinding  constructor(con......