生成二维码并且将生成图片转换成输入流
生成二维码导入Ireport
图片直接转换为输入流
#
标题
一、生成二维码并且将图片转换成为输入流
代码如下(示例):
public BufferedImage addLogo(BufferedImage bufferedImage) {Graphics2D graphics2D = bufferedImage.createGraphics();int width = bufferedImage.getWidth();int height = bufferedImage.getHeight();try {//添加二维码 中心的Logo 也可以手动设定Logo位置BufferedImage logo = ImageIO.read(new File("D:\\阿葵.jpg"));graphics2D.drawImage(logo, width / 5 * 2, height / 5 * 2, width / 5, height / 5, null);BasicStroke stroke = new BasicStroke(10, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_BEVEL);graphics2D.setStroke(stroke);// 设置笔画对象//指定弧度的圆角矩形RoundRectangle2D.Float round = new RoundRectangle2D.Float(width / 5 * 2, height / 5 * 2, width / 5, height / 5, 20, 20);graphics2D.setColor(Color.white);graphics2D.draw(round);// 绘制圆弧矩形//设置logo 有一道灰色边框BasicStroke stroke2 = new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);graphics2D.setStroke(stroke2);// 设置笔画对象RoundRectangle2D.Float round2 = new RoundRectangle2D.Float(width / 5 * 2 + 2, height / 5 * 2 + 2, width / 5 - 4, height / 5 - 4, 20, 20);graphics2D.setColor(new Color(128, 128, 128));graphics2D.draw(round2);// 绘制圆弧矩形graphics2D.dispose();bufferedImage.flush();} catch (IOException e) {e.printStackTrace();}return bufferedImage;}public InputStream createQrCode(int width, int height) {boolean flag = false;InputStream inputStream = null;if (width >= 0 && width <= 500 && height >= 0 && height <= 500) {Qrcode qrcode = new Qrcode();qrcode.setQrcodeVersion(4);//设置qrcode版本可选1~40qrcode.setQrcodeEncodeMode('B');//设置编码类型B表示二进制编码qrcode.setQrcodeErrorCorrect('M');//设置纠错类型M,表示15BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);//设置bufferImage宽高,色域Graphics2D graphics2D = bufferedImage.createGraphics();graphics2D.setBackground(Color.white);graphics2D.setColor(Color.BLACK);graphics2D.clearRect(0, 0, width, height);int prefix = 20;//设置偏移量try {byte[] bytes = content.getBytes("utf-8");if (bytes.length > 0 && bytes.length < 1000) {boolean[][] booleans = qrcode.calQrcode(bytes);for (int i = 0; i < booleans.length; i++) {for (int j = 0; j < booleans.length; j++) {if (booleans[i][j]) {//写入图片graphics2D.fillRect(i * 10 + prefix, j * 10 + prefix, 10, 10);}}}}graphics2D.dispose();//关闭画图bufferedImage.flush();//刷新//addLogo(bufferedImage);//ImageIO.write(bufferedImage, "png", img);//ByteArrayOutputStream 是可以讲文件接收到成为一个outputStreamByteArrayOutputStream os = new ByteArrayOutputStream();//ImageIo.write可以将文件转换成为一个输出流ImageIO.write(bufferedImage, "png",os);//ByteArrayInputStream 可以通过ByteArrayOutputStream os.toByteArray()输出的比特数组生成一个输出流 输出流->输入流inputStream=new ByteArrayInputStream(os.toByteArray());return inputStream;} catch (IOException e) {e.printStackTrace();}}return inputStream;}
2.读入数据
代码如下(示例):
data = pd.read_csv('https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
生成二维码并且将生成图片转换成输入流相关推荐
- React生成二维码并将canvas转换成img格式
1. 导入包生成二维码 npm install qrcode.react npm包链接: https://www.npmjs.com/package/qrcode.react 1.1 生成二维码: i ...
- vue实现生成二维码,并生成图片
vue实现生成二维码,并生成图片 1.安装插件 npm install qrcodejs2 --save npm install --save html2canvas 2.导包 import html ...
- Java生成二维码并将其绘制成个人名片图片
一.生成二维码 1.导入依赖 <dependency><groupId>QRCode</groupId><artifactId>QRCode</a ...
- 生成二维码并将Bitmap保存成图片
本来项目集成的Zxing Bitmap qrCode = EncodingHandler.createQRCode(shareUrl, DimenUtils.dp2px(105)); 虽然这个类生成的 ...
- java批量生成二维码图片,并打包成zip
最近开发遇到了一个批量打印二维码并生成zip包的需求,先记录下来 pom依赖 <!--添加二维码依赖包--><dependency><groupId>com.goo ...
- java如何批量生成二维码,并返回成压缩包形式?
最近有点忙,现在稍微闲一些,就想写写最近遇到的一些业务. 业务:后台根据前端传入的需生成的数量,生成二维码图片并统一打包成压缩包返回. 效果图: 首先根据一定规则生成二维码字符串,然后返回成list( ...
- java语言批量生成二维码
背景: 在智物项目中,为了物品入库.借用.归还方便,减少用户的操作,使用扫描二维码的方式进行操作,那么如何java 后端生成二维码传入到前端就成了一个问题 业务分析: 1.寻找一个二维码的pfd文件类 ...
- 前端js html转换成pdf可下载打印;前端js可批量生成条形码;前端js可批量生成二维码,生成letter标签
注意:本文调试的是letter纸尺寸 前端js html转换成pdf可下载打印 html2canvas + jspdf 前端js生成条形码 Options · lindell/JsBarcode ...
- dom 生成图片和链接生成二维码
1. dom 生成图片 此处使用的是 html2canvas 插件 和canvas2image插件 html2canvas 方法的第二个入参还有很多选项可以配置,详情请看这里这里 html 1 < ...
最新文章
- 多线程解决rospy.spin()语句之后,程序不再往下执行问题
- CentOS、Ubuntu、Debian三个linux比较异同
- search strategies
- angularjs ajax header,angularJs/ajax跨域请求携带cookies
- Thymeleaf th:include、th:replace使用
- 与殿堂级大师隔空对话——一张纸是怎么限制了我们的想象力
- Hazelcast入门指南第3部分
- 双路服务器单路运行,单路还是双路?看需求选择_机箱电源评测-中关村在线
- 中国以 34% 的 5G 专利完胜美国、芬兰和韩国!
- 容器List之ArrayList详解
- Spring 最常用的 7 大类注解,女媛史上最强整理!
- 汉字转换拼音及首字母
- (第二天)编写训练记忆软件--数字编码矩阵V1.0
- 趋势交易大师php,大道至简——多级别均线共振交易系统
- Sky Blue And Black
- python-套接字基础与 UDP 通信
- 解决tensorflow.python.framework.errors_impl.InvalidArgumentError: indices[0,32] = -1 is not in [0, 50)
- 微信html抽奖转盘代码,使用CSS3+jquery.js 实现微信抽奖转盘效果
- 前端开发基础 HTML+CSS+JS
- 21 个好用的持续集成工具,总有一款适合你