话不读说  直接上代码

 package cn.kgc.ssm.common;

 import java.io.*;

 /**
* @author
* @create 2019-08-15 9:36
**/
public class DDD {
/**
* 读取图片 返回一个图片的字节数组
* @param path
* @return
*/
public static byte[] imgArray(String path) {
//字节输入流
InputStream inputStream = null;
//字节缓冲流数组
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
inputStream = new FileInputStream(path);
byte[] b = new byte[1024];
int len = -1;
//循环读取
while ((len = inputStream.read(b)) != 1) {
byteArrayOutputStream.write(b, 0, len);
}
//返回byteArrayOutputStream数组
return byteArrayOutputStream.toByteArray();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
//关闭流
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
} public static void writeImg(byte[]array,String path){
//创建一个字节输出流
DataOutputStream dataOutputStream = null;
try {
dataOutputStream = new DataOutputStream(new FileOutputStream(path));
//将字节数组
dataOutputStream.write(array);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭
dataOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} /**
* 读取二进制保存的图片 放到数组里
* @param path
* @return
*/
public static byte[] imageIn(String path){
//创建一个字节输出流
DataInputStream dataInputStream = null;
try {
dataInputStream = new DataInputStream(new FileInputStream(path));
//创建一个字节数组 byte的长度等于二进制图片的返回的实际字节数
byte[] b = new byte[dataInputStream.available()];
//读取图片信息放入这个b数组
dataInputStream.read(b);
return b;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭流
dataInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
} /**
* 读取二进制保存的图片 输出图片
* @param img
* @param path
*/
public static void writImg(byte[]img,String path){
//创建一个字节输出流
OutputStream outputStream = null;
try {
outputStream = new FileOutputStream(path);
//将图片输处到流中
outputStream.write(img);
//刷新
outputStream.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
//关闭
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} /**
* main方法
* @param args
*/
public static void main(String[] args) {
//获取图片 将图片信息把存到数组b中
byte[] b = DDD.imgArray("D:\\5.JPG");
//通过数组B写到文件中
DDD.writImg(b,"img.txt");
//读取二进制文件保存到一个数组中
byte[] c = DDD.imageIn("img.txt");
//通过数组c 输出图片
DDD.writImg(c,"img.jpg");
}
}

JAVA实现读取图片的更多相关文章

  1. java 读取图片色深

    问题: 想写一个小程序可读取图片的色深(bit-depth).网上有一些软件可完成这个功能,但是我想把程序做成一个可移植的插件. 本想用c写的,但实在麻烦,最后选择java,与很多方法不用自己写,速度 ...

  2. Java生成读取条形码和二维码图片

    原文:http://www.open-open.com/code/view/1453520722495 package zxing; import com.google.zxing.BarcodeFo ...

  3. java IO流读取图片供前台显示

    最近项目中需要用到IO流来读取图片以提供前台页面展示,由于以前一直是用url路径的方式进行图片展示,一听说要项目要用IO流读取图片感觉好复杂一样,但任务下达下来了,做为程序员只有选择去执行喽,于是找了 ...

  4. java 读取图片并转化为二进制字符串

    本例子的目的在于测试往oracle数据库中插入blob字段 //以下代码源于:https://www.cnblogs.com/ywlx/p/4544179.html public static Str ...

  5. Java - 处理某些图片泛红

    参考博文: http://blog.csdn.net/kobejayandy/article/details/44346809 http://blog.csdn.net/shixing_11/arti ...

  6. Servlet从本地文件中读取图片,并显示在页面中

    import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpSer ...

  7. 最蛋疼的bug:读取图片缩略图(一定要在相冊查看下形成缓存)

    近期的一个连接服务端的应用.须要读取图片,一般供用户公布商品选择上传图片.初始的图片列表应该是缩略图.仅仅有确定了,才上传原图,OK不多说上代码 package edu.buaa.erhuo; imp ...

  8. 导出含有图片的Java项目,图片不显示

    项目的一些图片资源文件在导出成JAR包后,无法正确读取虽然Java项目还是可以运行,但原来的图片资源全不见了,于是你可以打开JAR包看看里面的东西,确实是有图片在里面,就是无法读取. 其实是因为我们在 ...

  9. java 导出blob图片到excel

    实现功能,导出当前页面显示员工的图片,核心代码已给出,仅供参考, 如需转载请注明出处http://www.cnblogs.com/wangjianguang/p/7852060.html 随便再扯2句 ...

随机推荐

  1. ioc和aop理解

    1.IOC 表示控制反转. 简单点说就是原来的对象是在要使用之前通过在代码里通过new Something()的方式创建出来的: IOC则是由spring容器创建同一创建,在程序要使用到该对象的时候, ...

  2. CentOS 配置阿里云 NTP 服务

    NTP 是网络时间协议(Network Time Protocol),NTP 服务能保证服务器的本地时间与标准时间同步. ▶ 配置时区信息 1.删除系统里的当地时间链接 sudo rm /etc/lo ...

  3. 最近很火的MySQL:抛开复杂的架构设计,MySQL优化思想基本都在这

    优化一览图 优化 笔者将优化分为了两大类:软优化和硬优化.软优化一般是操作数据库即可:而硬优化则是操作服务器硬件及参数设置. 1.软优化 1)查询语句优化 首先我们可以用EXPLAIN或DESCRIB ...

  4. 【Android】Theme.AppCompat.Light 问题

    Android 开发的 styles.xml 文件中遇到了这个问题: <style name="AppBaseTheme" parent="Theme.AppCom ...

  5. 真千兆路由的极限之OPENWRT MAKE, 某品牌白菜价QCA9558/QCA9880/QCA8337N纯种组合OS搭建时记

    自从上次仙人梦里放了一张无字天书,解惑了WPR003N的秘诀后,渐渐的,就忘了这件这事情,连想好的评测都拖延了好多月了,毕竟路由是拿来用的,不是用来写什么陈词滥调的评测的,无意间,热爱白菜的我发现了一 ...

  6. OI/ACM最全卡常大招

    NO.10: 循环展开: 在缓存和寄存器允许的情况下一条语句内大量的展开运算会刺激 CPU 并发(蛤?这是个什么原理,算了,反正写了没坏处就这么写吧) NO.9: 特殊运算优化:(或许这真的没用) 取 ...

  7. ZK安装、ZK配置、ZK集群部署

    今天心血来潮,想搞一下zookeeper集群.具体步骤记录下吧~嘻嘻

  8. 02、Java的lambda表达式和JavaScript的箭头函数

    前言 在JDK8和ES6的语言发展中,在Java的lambda表达式和JavaScript的箭头函数这两者有着千丝万缕的联系:本次试图通过这篇文章弄懂上面的两个"语法糖". 简介 ...

  9. Mybatis学习笔记之---环境搭建与入门

    Mybatis环境搭建与入门 (一)环境搭建 (1)第一步:创建maven工程并导入jar包 <dependencies> <dependency> <groupId&g ...

  10. SpringBoot学习系列之一(反射)

    最近在学习SpringBoot的知识,动起手来学习的时候才发现SpringBoot项目采用了大量的反射机制,晕,作为一个应届毕业生,以前学习反射的时候给我的感觉就是,这个到底用来干嘛的,好像没啥用啊, ...