[Java] Java生成二维码带LOGO, LOGO加圆角白框

本文介绍如何使用Java生成带LOGO且带有圆角和白框的二维码,包括将图片转换为Base64字符串,以及如何优化代码以满足实际需求。适合Java和Kotlin开发者参考。
摘要由CSDN通过智能技术生成

先来看看效果:

在这里插入图片描述

  • 实现:
  1. 生成指定文字内容的二维码
  2. 二维码中间嵌入LOGO
  3. 二维码做圆角和白色边框处理

新需求不断, 这不, 又来了个想生成带用户头像的需求. 蛮简单的… 在这里造完轮子分享给大家

因为公司后端主要是Kotlin写的. 请大家自行翻译.
Kotlin和Java本质是一种东西… 有关kotlin写后端是否合适…自己看吧. 人家官网直接支持
在这里插入图片描述

不废话了, 上代码

需引入:

        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.3.3</version>
        </dependency>
        
        <dependency>
            <groupId>net.coobird</groupId>
            <artifactId>thumbnailator</artifactId>
            <version>0.4.8</version>
        </dependency>

运行方法:


fun main() {
   
    val resBase64 = QrCodeUtil.generateLogoQrCode("I Love U!", "/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCACQAJADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDzPT5DBcCOWMsjdsH/AD7V0S27iBZlUiMvhTg4xjPBrHu7eV5IpIztZehXjH+RVb4sfEGfwh8Nbd7Uosk10sW7bljnJ46dMYr8MweCeY11Ri7N3P1vMMZ9Tpe2aujqUQQsedwI5/GqtzokbOXjYQ+objHvXi/gr4yT6XeSHW3jWyEYww5ZegAwPbnHb0r2fwx4k0rxRbwy2lzFJ5/Kxu43Zz6de1GZZJjsrfPJXj3Wv39jnwOcYbGaRdpdmT21o8RxjeuccH0/z6VpQKqsWJAB4ZetPuNPaCUMihgOxFIZkMZxxgc44r5eUnPU9mUk1dFaVUVzyduemcYpjSYAZRkHrnoKez7gTUJUbdwbr1BPbNWl3Jjc0LG52Dy95yPlwe9SEKWORt75Has2BMliMg4zxWij5j3Yz1PtWUlZ6A11IZY25z8wHANU7i3VjkAmtF8GPqAf51RuUZWOBjvkVdN6klIB4WyMcnJ9RThcMwJQ47nHFTLcrINrjaT0B4qNbYGPei4zz9a6r9wZDLP5mfM+YZx71UNvJaS+bHukiPVT2q06bm5B3DjNKiBG+b5cn8K1TsARzR3YwTxg/n/+uqX9kxGXbINjsTg+vcdq1v7CeeF7m2A/dj5iG49se9VILh1GyUEHp79D3pxlbWDErPYBbLJEGKlQ3Qe9eL/tJRXEeg6S/mN5UVwTtHTJxz+le4QS575THv0rmfi14Sh8W+Bb6EAtPHG0sWwHO5QTg/rXqZTilhMdSqT2v+en6nBmFH6xhalJbtafLU+WGmi1i3t7cYtg0qLkngLj7xHc5NQnV7/wR4jhu9MupIDbn92/XnuSOh71i6VezWd0EbLSqdowcEHNW9RmbUoGmKqiRny1UH8TX73NxqR11ufkEU4S0Pqn4T/H/TfFttbWGsutnqOFVW6LL2/CvSWt1BeSJgyOdwK8gn0FfB3huDa7SyS/Z0QjEx69uEHc457AdyMivdPhX8ZptKY6fq7m5s2GV3tjyT1yWx0yce344r87zfhenWTrYJcsuq6P07H1uX51Og1TxDvHv2PdQgAIGScj3p0LBRkjd36f5FU/Duv6f4rsTc6e6yMmRJAch0x6g49f881ddcKe6jk8ZNfl+Iw9XC1HSrRtJH31DEU8RBTpu6Y4sI2DDIAHVv8ACrcILImMYx2FUkfAIGCB1INW7ScBipK7lGCR0xXHJNmzdkLc287W5eLhx0BArHF8xf8AfABf4u+P8+tUPif8QU+H3htLqN7Vb+8uY7Ky+3yNHbrK5+/Kyg7Y0UM7HjhCMgkVDb+OPC2u6mlpp3iPSdQvJS3lwWl7HI74BJIVSTwAT9K7qeFrKkqzg+V31s+m/TbXc5o4ik5um5K6t1XX5mzJHDeRiS3bIz+XtUdq72ZCuMp0/WlW0lRjsPlnJ5Xo1ZPiv+1f7DuRbava+H3RWZ9TurYXCQxgElsF0VSODlsgAHI5yJhHmahffv8A8BN/cjWT5U3ub8kSuqlVGcdR3qu0PYj3rh/B1v4o8NfEC30jW/GaeKLe70u5uxbjTobVoGSWBVY7CSQwkcc4Hynrjj0maFHjJx+dXXpfV5KPMpJpNNX2d+6T6djGlW9qm7NWdtbfo33KkFy1sAq8p/dHpmp54ob4Er98dfX1qocxOSRx60ee0T7l5GOnasWuqN7diNbZkQxspJX+KtC0CzRtE/A2lc46cVZsrX7YSCMNwN3+FJLaSWE3y42nnp3qk+d2FJrY+JPiz4Yfwp8QtQhiDeRLIZoSD1DcmqOiR2rWsZl/e7jlkIwqAc8565wK+hv2ivAY1zw2mvwQBbu2bEmCcsh7gfjXzJCxsQULfJuztOc1++ZTiHiMFSqS3tZ/LQ/JMfS9lipwXf8APU6e50KGHR5r5JDG7y+VGPRByWHsTxmsoTxQzGFmY72UySKm5lH+yMgHscE84HIrVguI72ygt4kd22bdo/ikJ4/ADH6+tc/faJepqU9vawyXJil8ktEhbLnqBj8q9S7OO3c7bwX8Sr3wlKRZSCNWdBIzHLMA2cYyMjGeM+mCM8/S/gXxnbeP9DM8O1btABLEOzbQSfbuB9PrXyfP8NfEOiXWnyalplzaw3Y3IZYyMjuRXo3hu6m8K3UUmn3Lwxbd9wIcfvCMYXnrzgZPbPqa8PNcro5lScZxtPo+q/4B6GCx1TBVFKD93quh77AzxPtfKE0i6kLNmXaC5YFZAak0a8HjnSVmtNMuIrgKCXdWUZ9M55/z0qrrehaho3yXttJGCoKuV4P0PevyavldfDtqpB2P0fD4+hiUuWWr6HinhO08Da38R/FWp3XhJoLPS0g0230hPDTPGyvuc3LwojtvZo3AYomE2A5LYXpfgZfeHPFvh3S9bTwnpuk6/tmeS40/QntoIwJXjAjnKbSSmMhXJ5b0IEOu6B4nuPFbahofikeHVntIrWU/2el0XMbyMp+cgD/WsOP17W/hl8NNb8BWVnYHxvc3mi2zb4bC3063iU5cuwd2EjFSWboQRngivRxdSlPDN+1tJqNlzTdkk01tZ3eur1vq1axw0qFWlXXuXScru0Ve7TT3vovLS2m5u/GDVtS0XQ9JfTPEH/CNQT6ikN5qzWa3UdtE0cgUurDCqZfKTeSACwyQK4zSNb8U/En4JeNtLtdQi13VoNUm0aHUbSKGM3lqHi3yAFhHkxSSYwQMbcHd8x9oMZVxLHkp9ScVl6toEGupDDLLd2yxNlRZX01ofxMTrn6GvGw+Mp0qUIOC5oyUuayezvrs32tzWtrud1XDSqzlJTdmmrXturea872v8jioNYuNN8XweIdX8A6hpdzNHDo39pfb7eYRxy3CBEMaTfd8xwSwUt+FekTzSRMSq7gOw715hffDTWH8U6c11c3FjoFldreHGvXt/JeGJw8KPHMfLjXcodvvnKgAj71eoW13ExVJwFBxhuoNRj/ZS5J07PTW17JdFq3qtdE/xNMMpx5udPfrbXu9EvLoO81J1ORyeoNVpLdkAKncPQdqku7Pa26JsjsTUUFyfMVXGPSvMWmsTuSOodEsVjuIZ4bmBuk0LhlP4ioLiQ3jFFHzNxtIzmvgv4Z/GXXPBV8iQyNd2JI8yzkb5WHt6Gv1P/ZU+Fdp8W/Ddt4qvrW902B9pS3uU27jjJI9V5r73G8KVqeJSwrvTfV9PX9D47D59TdByr/Gui6mF4W+EA8deENRs9Ts5ts0DKrkZB9xkfSvj+5/ZykufEF9pkxG21lMe9AS4HJBx34H+eK/ZlvDlvYWKWcKKkSLtGBjivNpfgnoMF/c3gtl86d97P3JznrX6HgsOsDQjRjrY+NxVeWJquq9Ln5/fDD9jRmubeW6mknEUgn2bCmSOi98/wD1q+kfC/7OOi+HRosMGkQlg7T3W6JSGcngnjJxyK+jdI8H2mmtvSJQ2MEjvW1FpMAIyo2r0NeipnC4t7nl3ib4L6V4usTZ3llFLA8ew5XGOOvtXC/D39irwr4YvC81ol4VkZo2lyxAPuT/AC9a+llZIBjHA4NQTakYpgBgKeAayk2WkkYem/C3QdIgEVvplvEgUABIx0Haub+Ifw007xFoVxam0QSMhEb7ehx7V3F3rqQZ3SYJ6VTGrpeShN4OOgPSlKMZpxkrpjUnB80XZo/P74j/AAtvPAcuy4BlVmJQgZGPbufX0rjrDUGgChjvToT6V+gnxJ+HkHjSwkikWMELnIGMnHAJ9K+I/F/hey8D6xdWSwvPLH9+WbKop5+6vXHTBPX0r80znKFhW5w+B/gz9CynNvrMfZVdZorxXAiAkDbomAJAPrVqSOOQoyHgelcU/jzTLGdVudSs1UnBRXXj8BVy38e+Hww2azZMH5GZ1/lmvjJ4HELWMH9z/wAj3vb00/iX3r/M6t5DNEUkGT2aqbWYdSNu/HOM8iprO+t9Ri328yT467GB/lTgoDlhk479K4dYOz0OmMr7Fcm4ihDIplReSO/5UkDxXwUFSsnQgjFXIpTI+3lSe46Gp57aOeMBhiUdGHGaTktmjRM+aP2Xv2apfip8ZNPsFkjjtbdxcvvZMOFOduwnLKcEHAOM8+/7feDvDtt4R8O2Ol2lutvb20SxrGg4XAxXx5/wTt+ES2Phy88S6jYeXd+eUheVfnGAM4yOB6Y96+3jIBgdM9K/qPMY06eIlSpbI/BsJKVWmqk+v5Fe6kSRMk/MKzGdFbDn86t3bYJI6+hrGuZFnJUkgeuMV5TPQ2LcoijXzFIGfSoWlRELZH4VhTyywrIA2V7HOc1i3HihLRWWSQAqO5xQmQy14k8XW+lRuScMPcD+dcBq3xWtImJ+0qAq5G7jJ9K84+L3j23t70ZkM8DHLADIX6j0r4f+M/xR8XeNbbU9R8OaRq9v4G0qdbfUNesbSV7aGQ7R5ckwG1Dl1+UkZ3LxyK3jS5znc3eyPu+7+Mb6xqkdpZyMwJ2M4Hyj8fX6Vr2njd9OmG+4Dk9i2MnvjNfM3gfxZaap8HdOubXVl1mzso1huJ1tkjmg9WJQDOBjO4Zxk5Pehc+INc8N6lbRtP8AaoppAkUpO4FSRjvweev0raphXQlyzOSlioYhc1Po7f8ADo/QTwt4ntNasADJukIwV96+Vf2tP2WvFfxjv4v+ESvbK2jGWuFubh0DHn5V2gj68Dk9eMGx4D8c3mja5aC7aUo2A6sCiZ9q+qo70vBbywKrK6gtgdK5ZNw1sm13Vz0aVpOze/yPxk+Iv7H3xb+HEM1zqXhK6u7GInN1pjrdrj+8VQlwOM5KjHevEZ2kjZkIZGU4KtwRX9CeI7xDlfm714t8W/2Mvhp8Y2mu9W0CO01WXOdT00/Z7gtjG5ivDkYH3w1THHSTtUX3HbLBq14M/Gfw/wCM9Z8LXa3GmahPaOD0RztPsR0Ir6U+Fn7RVn4meHTtdEen6kxCJcghYZj7/wB0/pXqfjr/AIJR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值