当前位置:首页 » 编程语言 » java图片流

java图片流

发布时间: 2022-12-13 14:27:48

A. java把图片转换成二进制流

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

File file = new File("d:\L.jpg");//图片

FileInputStream fis = new FileInputStream(file);//把图片变成流

FileOutputStream fos = new FileOutputStream(new File("E:\L.jpg")); //把图片流写入E盘

byte[] read = new byte[1024]; //每次读取的字节 可以自己定义 256 512 1024 2048 等。。。

int len = 0;

while((len = fis.read(read))!= -1){ //读取变成流的图片

fos.write(read,0,len);//写入图片

}

fis.close();//关闭输入流

fos.close();//关闭输出流

}

B. java 图片以流的方式在xml中发送,字符量过长的问题

可以分多次发送数据,每次都不超过额定的最大传输量上限。比如可以将图片用压缩软件分卷压缩,再分别传输,最后合并解压得到完整的图片文件。

C. java web二进制流的图片如何用response返回给前台

FileOutputStream很明显你是用的文件流返回的
// 以byte流的方式打开文件 d:1.gif

FileInputStream hFile = new FileInputStream(url); //得到文件大小

int i=hFile.available();

byte data[]=new byte[i]; //读数据

hFile.read(data); //得到向客户端输出二进制数据的对象

OutputStream toClient=response.getOutputStream(); //输出数据

toClient.write(data);

toClient.flush();

toClient.close();

hFile.close();

(3)java图片流扩展阅读

如果是纯文本使用字符流,如果二进制文件,使用字节流。

如果只是得到信息,原样不动,不进行修改操作,例如文件上传和下载,这时就使用字节流。文件上传:在服务器端把浏览器端信息提取出来。文件下载:把服务器端内容写给浏览器端。

如果要操作的是自定义信息,这时使用字符流。

通过response获取的输出流它的真实类型是什么?

ServletOutputStream response.getOutputStream();

PrintWriter response.getWriter();

ServletOutputStream由于使用字节流多数是原样复制,所以使用write方法,而不是print方法。

PrintWriter:打印流,两个特点:1.可以设置自动刷新。2.可以将信息原样输出。

D. java连续发送和接收几张图片字节流

在接收端获得输入流in_stream2并在for的第一个循环中的while(in_stream2.read(b_image)>0)
中全部读出来了,所以会出现你说的那个结果
具体解决办法是有很多种,可以在发送端申明一个数组,存放文件的大小一起发送给接收端,接收端的while(in_stream2.read(b_image)>0)中再加以处理。

E. Java中如何把图片转换成二进制流

Java中将图片转为二进制流只需要使用FileImageInputStream取得图片文件,然后使用ByteArrayOutputStream 写入到二进制流中即可,下面是详细代码:


//图片到byte数组
publicbyte[]image2byte(Stringpath){
byte[]data=null;
FileImageInputStreaminput=null;
try{
input=newFileImageInputStream(newFile(path));
ByteArrayOutputStreamoutput=newByteArrayOutputStream();
byte[]buf=newbyte[1024];
intnumBytesRead=0;
while((numBytesRead=input.read(buf))!=-1){
output.write(buf,0,numBytesRead);
}
data=output.toByteArray();
output.close();
input.close();
}
catch(FileNotFoundExceptionex1){
ex1.printStackTrace();
}
catch(IOExceptionex1){
ex1.printStackTrace();
}
returndata;
}

另外,如果需要将byte[]存回图片或转为String,则:

//byte数组到图片
publicvoidbyte2image(byte[]data,Stringpath){
if(data.length<3||path.equals(""))return;
try{
=newFileImageOutputStream(newFile(path));
imageOutput.write(data,0,data.length);
imageOutput.close();
System.out.println("MakePicturesuccess,Pleasefindimagein"+path);
}catch(Exceptionex){
System.out.println("Exception:"+ex);
ex.printStackTrace();
}
}
//byte数组到16进制字符串
publicStringbyte2string(byte[]data){
if(data==null||data.length<=1)return"0x";
if(data.length>200000)return"0x";
StringBuffersb=newStringBuffer();
intbuf[]=newint[data.length];
//byte数组转化成十进制
for(intk=0;k<data.length;k++){
buf[k]=data[k]<0?(data[k]+256):(data[k]);
}
//十进制转化成十六进制
for(intk=0;k<buf.length;k++){
if(buf[k]<16)sb.append("0"+Integer.toHexString(buf[k]));
elsesb.append(Integer.toHexString(buf[k]));
}
return"0x"+sb.toString().toUpperCase();
}

F. java图片数据流的传输过程中什么情况下会丢失数据

结束时是否未关闭流,如果未关闭流,则会丢失数据!

G. Java base 64 图片流转成图片保存到本地可以的,怎么上传到服务器

通过路径获取到图片 bitmap转成字符串或者字符流 然后上传到服务器即可。

H. Java怎么做到把图片转换成流存入数据库,然后怎么再把图片显示出来。

首先创建一个空 Blob/Clob 字段,再从这个空 Blob/Clob字段获取游标,例如下面的代码:
PreparedStatement ps = conn.prepareStatement( " insert into PICTURE(image,resume) values(?,?) " );
// 通过oralce.sql.BLOB/CLOB.empty_lob()构造空Blob/Clob对象
ps.setBlob( 1 ,oracle.sql.BLOB.empty_lob());
ps.setClob( 2 ,oracle.sql.CLOB.empty_lob());
ps.excuteUpdate();
ps.close();
// 再次对读出Blob/Clob句柄
ps = conn.prepareStatement( " select image,resume from PICTURE where id=? for update " );
ps.setInt( 1 , 100 );
ResultSet rs = ps.executeQuery();
rs.next();
oracle.sql.BLOB imgBlob = (oracle.sql.BLOB)rs.getBlob( 1 );
oracle.sql.CLOB resClob = (oracle.sql.CLOB)rs.getClob( 2 );
// 将二进制数据写入Blob
FileInputStream inStream = new FileInputStream( " c://image.jpg " );
OutputStream outStream = imgBlob.getBinaryOutputStream();
byte [] buf = new byte [ 10240 ];
int len;
while (len = inStream.read(buf) > 0 ) {
outStream.write(buf, 0 ,len);
}
inStream.close();
outStream.cloese();
// 将字符串写入Clob
resClob.putString( 1 , " this is a clob " );
// 再将Blob/Clob字段更新到数据库
ps = conn.prepareStatement( " update PICTURE set image=? and resume=? where id=? " );
ps.setBlob( 1 ,imgBlob);
ps.setClob( 2 ,resClob);
ps.setInt( 3 , 100 );
ps.executeUpdate();
ps.close();

I. java输入输出流处理图片怎么提取相片

这个简单 你可以先读 读完之后在写出来么

public class BinaryOperation {
public static void main(String args[]){
FileInputStream fis = null;
FileOutputStream fos = null;
try {

fis = new FileInputStream("d:/图片/chenhl.jpg");
byte[] b = new byte[128];

fos = new FileOutputStream("d:/图片/chenhl 复件.jpg");
while(fis.read(b)!=-1){
fos.write(b);
}

} catch (Exception e) {
e.printStackTrace();
}finally{
try{
if(fis!=null) fis.close();
if(fos!=null) fos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}

热点内容
如何申请i7服务器地址 发布:2025-01-23 04:42:15 浏览:845
浏览器内核源码 发布:2025-01-23 04:41:34 浏览:659
精英版缤智少了些什么配置 发布:2025-01-23 04:41:30 浏览:356
编写c编译器 发布:2025-01-23 04:41:30 浏览:968
可以解压war包的编译软件 发布:2025-01-23 04:38:28 浏览:986
vivo手机有编译功能吗 发布:2025-01-23 04:31:57 浏览:568
自己架设云手机服务器 发布:2025-01-23 04:31:17 浏览:949
gcc命令行编译的方法 发布:2025-01-23 04:30:31 浏览:397
我的云服务器地址近期价格 发布:2025-01-23 04:29:05 浏览:625
js预览上传图片 发布:2025-01-23 04:28:54 浏览:407