话不读说  直接上代码

 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. Wireshark着色规则

    wireshark抓包蓝色和红色 在默认情况下 蓝色适合红色相反的方向 绿色背景的是HTTP包灰色背景的是TCP包.黑色背景的是TCP错误包或者校验和错误的包 有时候wireshark抓的包还有颜色区 ...

  2. Java_转换流和缓冲流

    今日内容介绍 转换流 缓冲流 1 转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamR ...

  3. 【Android】ViewModel+LiveData:更加直接地控制视图的方式

    目录 LiveData 前言 使用ViewModel+LiveData LiveData 前言   ViewModel通过将UI data保存在ViewModel类实例的内部,从而大大地将MVC中的 ...

  4. Linux命令- echo、grep 、重定向、1>&2、2>&1的介绍

    最近笔试遇到一道题,关于Linux命令的,题目如下 下面两条命令分别会有怎样的输出 echo  hello 1>&2 |grep aaa echo  hello 2>&1 ...

  5. S3 Select for Java 使用记录

    背景 后台基本使用 Amazon 的全家桶(EC2.DynamoDB.S3.Step Fuction 等等)构建.现在需要根据访问者的 IP 确定访问者的国家或地区. 已知: 访问者 IP 一个 ip ...

  6. Opengl_入门学习分享和记录_02_渲染管线(一)顶点着色器&片段着色器

    写在前面的废话:今天俺又来了哈哈,真的好棒棒! 今天的内容:之前我们大概描述了,我们自己定义的顶点坐标是如何被加载到GPU之中,并且介绍了顶点缓冲对象VBO用于管理这一块内存.今天开始详细分析它的具体 ...

  7. Redis集群与spring的整合

    上一篇详细的赘述了Redis的curd操作及集群的搭建.下面我们开始将他整合到我们实际的项目中去.我的项目采用的是标准的ssm框架,ssm框架这里不说,直接开始整合. 首先在maven管理中将我们的j ...

  8. dart的基本语法(一)

    Hello world ​ 安装dart的环境就不赘述了,无脑安装就可以了,安装过程中好像需要梯子(vpn),我装的时候失败好多次,我的梯子不能用了,准备不装了的时候,莫名其妙的装好了.迷の操作.惯例 ...

  9. Yii2 基础模板前后台登录分离

    1.用GII 生成一个模块(modules)名字为 admin 2.在./config/web.php 中加入如下配置 'modules' => [ 'admin' => [ 'class ...

  10. ReactJS:最大更新深度超出错误

    Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside com ...