公司需要做一个九格切图功能, 方便发布至朋友圈. 本来用Python三十行搞定. 但是被测试部diss了说我不会用Java写, 当时一时气不过用原生Java又写了一个, 整整一百五十行… 我的青春啊

中间踩了BufferedImage的很多坑, 在此总结一下BufferedImage的一些用法

通过URL读取BufferedImage
 // 需要对IOException进行处理, 一共两处, 在URL连接处和文件读取处URL url = new URL("http://yihezo.cn/static/media/logo.9d4a5ade.png");URLConnection connection = url.openConnection(); //打开连接connection.setDoOutput(true);connection.setReadTimeout(3000);// 设置超时时间(非必须)BufferedImage img = ImageIO.read(connection.getInputStream());
通过本地文件路径读取BufferedImage
 File file = new File("C:/a.png");BufferedImage img = ImageIO.read(new FileInputStream(file));
BufferedImage转Base64
 // img为上面获取到的图片, 类型同为BufferedImageByteArrayOutputStream baos = new ByteArrayOutputStream();//io流ImageIO.write(img, "png", baos);//写入流中byte[] bytes = baos.toByteArray();//转换成字节BASE64Encoder encoder = new BASE64Encoder();String base64Code = encoder.encodeBuffer(bytes).trim();
Base64转BufferedImage
 String base64Code = ""; // base64编码过长, 此处不放示例BASE64Decoder decoder = new BASE64Decoder();byte[] bytes1 = decoder.decodeBuffer(base64Code);ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);BufferedImage img = ImageIO.read(bais);
裁剪BufferedImage
 /* * img为上面获取到的图片, 类型同为BufferedImage * getSubimage(x轴坐标, y轴坐标, x轴坐标向右距离长度, y轴坐标向下距离长度) * 左上角坐标为0,0 */BufferedImage newImg= img.getSubimage(0, 0, 20, 30);
保存BufferedImage
 File f = new File("E:/Test.png");ImageIO.write(resImg, "png", f);

[Java] BufferedImage类的相关处理相关推荐

  1. Java String类的相关操作

    Java String类的相关操作 一.如何遍历字符串 //法一 String str="hello world"; for(int i=0;i<str.length();i ...

  2. Java高级--Java常用类

    Java常用类 字符串相关的类 String String的实例化方式 String常用方法 String与字符数组转换 字符数组--->字符串 字符串--->字符数组 String与字节 ...

  3. java servlet类_[Java教程]与Servlet相关的类

    [Java教程]与Servlet相关的类 0 2017-08-31 17:00:15 有4个有关的类,通过servlet可以获得其中的三个,然后通过ServletConfig间接获取ServletCo ...

  4. Java常用类(数学相关类 /字符串相关类/时间相关类/格式化类)

    Java类库概述 Java类库文档 https://docs.oracle.com/javase/8/docs/api/ 可以下载文档离线版本(chm格式) https://blog.csdn.net ...

  5. java流类图结构_java I/O 流总结

    一.java 流操作有关的类和接口: 类                                                                          说明 Fil ...

  6. Java Process类的浅学习

    Java Process类的浅学习 文章分类:Java编程 今天用了下java.lang.Process类,只是初步的学习,并没有深入实践,因为感觉它的用途并不是很大,偶尔才可能用上,如果要经常使用它 ...

  7. 【知识积累】BufferedImage类实现图片的切分

    一.引言 如何实现图片分割?若有园友用到这个模块,使用Java的BufferedImage类来实现,图片切分也可以作为一个小工具积累起来,以备不时之需. 二.代码清单 package com.lees ...

  8. 这些Java常用类,你必须要学会,还不快快收藏?(近两万字详细介绍)

    零基础学习之Java常用类 概述 包装类 和数学相关的类 String类 创建字符串对象 使用构造方法 使用静态方法 使用" " + 拼接 字符串对象的比较 字符串的常用方法 可变 ...

  9. java+自定义异常类+输入若干成绩 为负数时输出抛出异常_java+自定义异常类+输入若干成绩 为...

    java+自定义异常类+输入若干成绩 为 [2021-02-10 19:00:54]  简介: java中定义类的关键字是:"class".在Java中定义一个类,需要使用&quo ...

最新文章

  1. Js下载文件到本地(兼容多浏览器)
  2. boost::replace_copy_if相关的测试程序
  3. docker harbor 域名_超详细的搭建docker私服Harbor教程
  4. ingress controller 和ingress使用实例
  5. TTL电平、CMOS电平、RS232通信电平的概念及区别
  6. 基于canvas的视频遮罩插件
  7. SolrCloud集群的安装使用以及Zookeeper的介绍
  8. orcl数据库先决条件检查时失败
  9. 3.7 钱包、帐户、token、智能合约、action、权限、权重和阀值之间关系
  10. PRML_4章 线性模型分类笔记
  11. scratch 打字游戏
  12. 交友结婚的原则[转贴]
  13. java 银行存取款_使用JAVA编写一个简单的银行存取款程序
  14. R语言实现数据按照行排序
  15. 前端视频预览功能的实现
  16. Mesos | 1.3.2 webui static 界面代码分析
  17. 4.发布帖子,评论帖子
  18. 如何使用tor代理网络
  19. 谷歌protobuf(Protocol buffers)的使用
  20. 谷歌浏览器英文页面翻译成中文<配置方式>

热门文章

  1. arduino 学习笔记及课件01基础入门
  2. XJTU_ 西安交通大学2020大学计算机作业-第九周
  3. 无限制生成,个人转账二维码的解决方案
  4. alsa音频架构2-ASoc
  5. 【Altium Designer】学习
  6. es-字段类型-flattened
  7. 运动框架继续复习- 让梦想照进现实
  8. Canvas+鼠标事件
  9. 解决 Android N 上报错:android.os.FileUriExposedException: file:///storage/emulated/0/
  10. 南阳nyoj586疯牛 和nyoj619详解总结