获取网络的一张图片,但是某种需要,要把获取的这段流输入换为BufferedImage流,有的地方还需要转换为byte[].

获得图片地址,获得了一个图片输入流,例如:

Url img = new URL(url);
InputStream in =
img.openStream();

接着把输入流转为BufferedImage:

JPEGImageDecoder decoderFile =
JPEGCodec.createJPEGDecoder(in);

BufferedImage
image = decoderFile.decodeAsBufferedImage();

或者
BufferedImage bi =
ImageIO.read(in);

如果根据这个图片对象,重新draw了一个新的bufferedImage以后,怎么才能获得它的byte数组呢?

通过ImageIO对象进行操作:ImageIO.write(bufferedImage, "jpg",
bos);

这样就可以根据bos输出流获得byte数组了,减少了通过File进行一次io操作的必要。

这个也对缓存图片有一定的意义。

【转载地址:】http://happyin1111.blog.163.com/blog/static/164184801201131432038992/

  1. if (null != files && files.length > 0) {
  2. for (MultipartFile file : files) {
  3. //主图
  4. byte[] byteArray = new byte[0];
  5. byteArray = file.getBytes();
  6. //缩略图
  7. BufferedImage image = Thumbnails.of(file.getInputStream()).size(224, 300).asBufferedImage();
  8. ByteArrayOutputStream os = new ByteArrayOutputStream();
  9. String fileName = file.getOriginalFilename();
  10. String fileType = fileName.substring(fileName.lastIndexOf(".") + 1);
  11. ImageIO.write(image, fileType, os);
  12. //base
  13. String content = Base64Utils.encodeToString(byteArray);
  14. String thumbnailContent = Base64Utils.encodeToString(os.toByteArray());
  15. threadPoolTaskExecutor.execute(new Runnable() {
  16. @Override
  17. public void run() {
  18. try {
  19. logger.info("执行线程任务开始前" + file.getOriginalFilename());
  20. clientUploadImage(file, content, thumbnailContent, user, batchId, batchNum);
  21. } catch (Exception e) {
  22. logger.error("图片识别失败", e);
  23. }
  24. }
  25. });
  26. }
  27. }

InputString 转换成 BufferedImage 和 byte[]的更多相关文章

  1. 获取网络图片并显示在picturbox上,byte[]数组转换成Image:

    private void getWebPicture_Click(object sender, EventArgs e) { WebRequest request = WebRequest.Creat ...

  2. bufferedimage 转换成 inputstream并保存文件

    BufferedImage img = removeBackgroud(file);//去除重影 //bufferedimage 转换成 inputstream ByteArrayOutputStre ...

  3. 将四个BYTE数值转换成IEEE754标准的浮点数(两种方法:用Addr函数取字节数字的首地址,或者用Absolute关键字)

    在工作中,经常使用到IEEE754格式的数据.IEEE754格式的数据占四个字节,好像Motorola格式和Intel格式的还不一样. 由于工作中很少和他打交道(使用的软件内部已经处理),就没太在意. ...

  4. Map 转换成byte[] 数组

    把Map转换成byte数组,使用 ByteArrayOutputStream和ObjectOutputStream Map<String,String> map = new HashMap ...

  5. C#字节图片互转、字节转换图片、图片转换字节、byte[]转换图片、图片转换成byte[]

    原文地址:http://www.cnblogs.com/wifi/articles/3522773.html /// <summary> /// 图片转换成字节流 /// </sum ...

  6. 将文件转换成byte[]数组

    代码 /// <summary> /// 将文件转换成byte[] 数组 /// </summary> /// <param name="fileUrl&quo ...

  7. PHP实现INT型,SHORT型,STRING转换成BYTE数组

    实现PHP实现INT型,SHORT型,STRING转换成BYTE数组的转化: class Bytes { public static function integerToBytes($val) { $ ...

  8. 浅谈ByteBuffer转换成byte[]时遇到的问题

    有些时候我们要把ByteBuffer转换成byte[]来使用.于是很多时候会用以下代码来转换: ByteBuffer buf; .....(一些往buffer写数据的操作) byte[] bs= ne ...

  9. 将文件File转换成byte数组

    代码如下: /** * 将文件转换成byte数组 * @param filePath * @return */ public static byte[] File2byte(File tradeFil ...

随机推荐

  1. H5自定义属性data-*

    data属性的设置和读取方式: 1.data-xxx 的格式,则采用正常格式来读写该属性值 <div id="test" data-name="小明"&g ...

  2. AJAX初识(原生JS版AJAX和Jquery版AJAX)

    一.什么是JSON 1.介绍 JSON独立于语言,是一种与语言无关的数据格式. JSON指的是JavaScript对象表示法(JavaScript Object Notation) JSON是轻量级的 ...

  3. restfull规范、DRF视图和路由

    一.restfull规范的简单介绍 1.介绍 REST:表述性状态转移,是一种web交互方案 资源:在web中只要有被引用的必要都是资源 URI: URI 统一资源标识符 URL 统一资源定位符 统一 ...

  4. yii2 redirect重定向

    redirect使用方法 $this->redirect(array('/site/contact','id'=>12)); //http://www.kuitao8.com/testwe ...

  5. RQY大佬一晚报告总结

    首先基础真的很重要.今天所有学的东西,都是为明天做铺垫,(这样看好像每天都是基础)基础牢了,学东西也就一看就会的感觉吧. 其次,自学能力很重要,投入很重要.大佬说他自己也不是看一遍书就懂的,而是反复看 ...

  6. os.listdir()、os.walk()和os.mkdir()的用法

    内容主要参照博客https://blog.csdn.net/xxn_723911/article/details/78795033 http://www.runoob.com/python/os-wa ...

  7. Tomcat 服务器

    1 相关概念 1 软件的架构 1 c/s 客服端/服务端 2 b/s 浏览器/服务器 2 资源的分类 1 静态资源 所有用户访问后 得到的资源是一样的 称为静态资源 html css js 静态资源可 ...

  8. Kubenetes 资源清单定义入门

    Kubernetes 常用资源 资源  对象 工作负载型资源对象(workload): Pod  Replicaset  ReplicationController  Deployments Stat ...

  9. Typora使用说明(记录总结)

    目录 区域元素 YAML FONT Matters 菜单 段落 标题 引注 序列 可选序列 代码块 数学块 表格 脚注 水平线 特征元素 链接 超链接 内链接 相关链 URLs 图片 斜体 加粗 删除 ...

  10. Python面向对象进阶和socket网络编程-day08

    写在前面 上课第八天,打卡: 为什么坚持?想一想当初: 一.面向对象进阶 - 1.反射补充 - 通过字符串去操作一个对象的属性,称之为反射: - 示例1: class Chinese: def __i ...