Java如何把二进制数据转换成图片???

作者&投稿:资杜 (若有异议请与网页底部的电邮联系)
Java中如何把图片转换成二进制流~

Java中将图片转为二进制流只需要使用FileImageInputStream取得图片文件,然后使用ByteArrayOutputStream 写入到二进制流中即可,下面是详细代码:
//图片到byte数组 public byte[] image2byte(String path){ byte[] data = null; FileImageInputStream input = null; try { input = new FileImageInputStream(new File(path)); ByteArrayOutputStream output = new ByteArrayOutputStream(); byte[] buf = new byte[1024]; int numBytesRead = 0; while ((numBytesRead = input.read(buf)) != -1) { output.write(buf, 0, numBytesRead); } data = output.toByteArray(); output.close(); input.close(); } catch (FileNotFoundException ex1) { ex1.printStackTrace(); } catch (IOException ex1) { ex1.printStackTrace(); } return data; }另外,如果需要将byte[]存回图片或转为String,则:
//byte数组到图片 public void byte2image(byte[] data,String path){ if(data.length200000) return "0x"; StringBuffer sb = new StringBuffer(); int buf[] = new int[data.length]; //byte数组转化成十进制 for(int k=0;k<data.length;k++){ buf[k] = data[k]<0?(data[k]+256):(data[k]); } //十进制转化成十六进制 for(int k=0;k<buf.length;k++){ if(buf[k]<16) sb.append("0"+Integer.toHexString(buf[k])); else sb.append(Integer.toHexString(buf[k])); } return "0x"+sb.toString().toUpperCase(); }

java对于文件的处理都可以用二进制流处理。new file然后将流写进去就可以了,根据你命名的文件后缀名去区分是什么类型的文件,对于二进制流来说没有什么类型的,所以你说的这种转换我不太明白。如果是将存储在数据库的二进制流拿到之后展示,有两种方式,一种是将二进制流写入到磁盘然后通过路径访问,一种是直接输出二进制流到呈现的view(如果你的view支持的话)。

直接上代码了,应该看得懂吧,str字符串的内容就是你XML里的内容。生成的a.jpeg我也给上传上来了,是个报表噢

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import sun.misc.BASE64Decoder;

public class CodeTest {

 public static void main(String[] args) throws IOException {

  String str = "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";

  BASE64Decoder decoder=new BASE64Decoder();

  byte[] bytes=decoder.decodeBuffer(str);

  File file=new File("D:/a.jpeg");

  FileOutputStream fos=new FileOutputStream(file);

  fos.write(bytes);

  fos.flush();

  fos.close();

 }

}




java如何把一个以文本存储的文件转化为二进制文件
备注:如果是想将数字转换为二进制,可以直接通过Integer的toBinaryString方法直接进行转换,举例:int i =8;System.out.println(Integer.toBinaryString(i));输出结果就是:1000.

ava中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop...
有两种实现方法,分别使用new Thread()和new Thread(runnable)形式,第一种直接调用thread的run方法,所以,我们往往使用Thread子类,即new SubThread()。第二种调用runnable的run方法。 有两种实现方法,分别是继承Thread类与实现Runnable接口用synchronized关键字修饰同步方法反对使用stop(),是因为它不安全。它会解除由线程获...

登陆AVA时出现binaries是什么意思
binaries n.一双( binary的名词复数 ); 双体; 二进制数; 双子星;[英]['baɪnərɪ][美]['baɪnərɪ]

JAVA是什么意思?
方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更好的解决方案。 23.接口(Interface)说明类该做什么而不指定如何去做,一个类可以实现一个或多个interface。 24.接口不是一个类,而是对符合接口要求的类的一套规范。 若实现一个接口需要2个步骤: 1.声明类需要实现的指定...

JVM原理是什么?
protectedfinalClassdefineClass(Stringname,bytedata[],intoffset,intlength) protectedfinalClassdefineClass(Stringname,bytedata[],intoffset,intlength,ProtectionDomainprotectionDomain);protectedfinalClassfindSystemClass(Stringname) protectedfinalvoidresolveClass(Classc) defineClass用来将二进制class文件(新类型)导入到...

Java语言主要特点有哪些?
Java语言的基本数据类型及其表示方式如下:byte8-bit二进制补码short16-bit二进制补码int32-bit二进制补码long64-bit二进制补码float32-bitIEEE754浮点数double32-bitIEEE754浮点数char16-bitUnicode字符在任何Java解释器中,数据类型都是依据以上标准具体实现的。因为几乎目前使用的所有CPU都能支持以上数据类型、8~64位...

Java语言的特点
Java源程序代码经过编译后生成二进制的字节码是与平台无关的,但是可被Java虚拟机识别的一种机器码指令。 Java虚拟机提供了一个字节码到底层硬件平台及操作系统的屏障,使得Java语言具备跨平台性。 2. 面向对象 面向对象是指以对象为基本粒度,其下包含属性和方法。对象的说明用属性表达,而通过使用方法来操作这个对象...

汇编语言程序是什么
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“A D D”代表加法,“M O V”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。然而计...

一次性搞懂字符集,编码,Unicode,Utf-8\/16,BOM...
utf8是变长编码,如果是1字节,它和Ascall码是一样的,多字节时第一字节的第一位开始填1,有几个1表示占几个字节,比如110x xxxx表示两个字节,第二个字节开始一直到结束,都是10开头,完整的编码如下:同样拿汉字"安"来说,它的Unicode码是0x5B89,转换成2进制填充到utf-8的空位里去,多余的...

Java培训班一般都教什么内容?
2、掌握Java Web开发技术:Java开发中使用到的Web前端技术,HTML5+CSS3,JavaScript操作BOM和DOM,JQuery的选择器、事件处理、动画效果,MySQL数据库技术,JDBC技术、JSP、Servlet、EL和JSTL、过滤器和监听器、AJax异步请求等,Linux技术、SVN、Linux环境下项目发布部署等。3、掌握使用流行框架SSM\\SSH技术实现...

达孜县13483177639: java怎么数据库中的二进制转换成图片类型 -
歧瑾五仁: java对于文件的处理都可以用二进制流处理.new file然后将流写进去就可以了,根据你命名的文件后缀名去区分是什么类型的文件,对于二进制流来说没有什么类型的,所以你说的这种转换我不太明白.如果是将存储在数据库的二进制流拿到之后展示,有两种方式,一种是将二进制流写入到磁盘然后通过路径访问,一种是直接输出二进制流到呈现的view(如果你的view支持的话).

达孜县13483177639: java怎样把图片二进制文件还原为图片?不牵扯数据库的. -
歧瑾五仁: IO字节流 读取保存输出……

达孜县13483177639: java图片转换二进制码再转换成图片
歧瑾五仁: 解决方法很多!加了几个字符串,然后再把修改后的二进制码转成图片2,这时候字符串已经转为图片,不再是字符串,图片也不是原来的图片了,再转成二进制也就和原来的不一样了

达孜县13483177639: 如何用Java语句取出存在数据库中的图片 -
歧瑾五仁: 和取普通字段一样,然后把二进制转为图片格式的.再说也不应把图片放到库里,而应把图片的路径放到库里.

达孜县13483177639: java文本文件转化为图片文件怎么弄? -
歧瑾五仁: 文件在计算机中都是以二进制保存的,但系统是以文件头来区分各种文件格式的.也就是说,仅仅更改后缀名是不行的.按照你说想的,可以这么来做:1、读取txt文本的每一行2、创建BufferedImage图片,然后在图片上画读取到的文本 下面给...

达孜县13483177639: java 问题:怎样把一个bin二进制图片文件用java代码打开?求解! -
歧瑾五仁: Java中可以用java.awt.Toolkit类打开gif,jpg,png三种类型的二进制图片文件,如果是其它类型的图片,需要转成上述格式的图片才行.我给你一个例子你看看吧.import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java....

达孜县13483177639: 请教如何将二进制的数组文件转换为图像(bmp -
歧瑾五仁: 从bmp文件中读取数据,读取到的数据放到字节数组中. 然后,将字节数组的每一个字节,输出成文本字符串. 例如,字节是0x03,转成字符串"03";字节是0xFF,转成字符串“FF”. 然后把字符串写入文本即可.

达孜县13483177639: java怎样用StringBuffer的二进制生成ImageIcon对象 -
歧瑾五仁: “我把图片转成了二进制代码” 有没有这一步具体的代码 如果 StringBuffer 里的内容格式无误,可以用 toString().getBytes() 得到 byte[]

达孜县13483177639: java中怎样把图片转换成二进制 -
歧瑾五仁: File file = new File("C:/Program Files/HITACHI/EUR Print Service/IMAGE/aaa.jpg"); byte[] bbb = new byte[10240]; try { InputStream a = new FileInputStream(file); a.read(bbb); System.out.println(bbb[0]); System.out.println(Integer.toBinaryString(...

达孜县13483177639: java 怎么把动态传值的网页 生成图片 -
歧瑾五仁: 那样很慢.JS 再请求,如imgElement.src="abcd.action?id=1234",然后这个action就返回二进制的图像

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网