话不读说  直接上代码

 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. 记kepServer读写西门子PLC

    在程序开发过程中为了测试方法或者验证某个属性的值是否正确 经常通过Kepserver 的 OPC Quick Client来手动置点或者读取点位 例如 这里显示的值都是经过转化后得到的十进制值,那我们 ...

  2. css3系列之transform 详解rotate

    rotate rotateX rotateY rotateZ rotate3d rotate: 旋转该元素,配合着transform-origin属性,transform-origin 是设置旋转点的 ...

  3. 【python-django后端开发】Redis缓存配置使用详细教程!!!

    官方查阅资料:https://django-redis-chs.readthedocs.io/zh_CN/latest/ 1. 安装django-redis扩展包 1.安装django-redis扩展 ...

  4. Js面向对象原型~构造函数

    脑袋一团浆糊,但希望写点啥,所有就有了这篇博文了,抱歉哦....开始吧!!!!  什么是构造函数??   所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造 ...

  5. 3. 源码分析---SOFARPC客户端服务调用

    我们首先看看BoltClientProxyInvoker的关系图 所以当我们用BoltClientProxyInvoker#invoke的时候实际上是调用了父类的invoke方法 ClientProx ...

  6. Java编程基础阶段笔记 day 07 面向对象编程(上)

    ​ 面向对象编程 笔记Notes 面向对象三条学习主线 面向过程 VS 面向对象 类和对象 创建对象例子 面向对象的内存分析 类的属性:成员变量 成员变量 VS 局部变量 类的方法 方法的重载 可变个 ...

  7. 昏睡了8年的我带着第一个微信小程序今年醒了

    工作8年之久的我今年算是彻底长进了,以前是知道自己的水平不咋地,但是没什么行动,理由是3年抱2娃,需要照顾孩子. 去年年底偶然一次看技术贴的时候,看到了博客园这个平台,看了很多大牛们的经历,也知道公司 ...

  8. 原生js实现图片懒加载+加入节流

    这两天在学习图片的懒加载实现,看了很多大佬的博客,终于有了点成果.现在用了其中一位大佬的文章中的代码实现了图片懒加载并且在其基础上加入了节流函数. 原理就不多讲了,有需要的可以去大佬的文章看看.大佬文 ...

  9. springboot整合websocket原生版

    目录 HTTP缺点 HTTP websocket区别 websocket原理 使用场景 springboot整合websocket 环境准备 客户端连接 加入战队 微信公众号 主题 HTTP请求用于我 ...

  10. 如何删除GIT仓库中的敏感信息

    如何删除GIT仓库中的敏感信息 正常Git仓库中应该尽量不包含数据库连接/AWS帐号/巨大二进制文件,否则一旦泄漏到Github,这些非常敏感信息会影响客户的信息安全已经公司的信誉.公司可能其它还有相 ...