`
ihuashao
  • 浏览: 4705092 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

图像在网络中的传输

阅读更多

版权声明:转载时请务必保留以下作者信息和链接
作者:陈维(chenweionline@hotmail.com)作者的网站:http://www.chenwei.mobi

在论坛里看到一个提问帖子,大概是问如何有效的将图像通过网络传输 然后在接收端显示。(问题原帖http://community.csdn.net/Expert/TopicView3.asp?id=5690204)

图像在网络上传输,一般都是传输编码压缩后的图像。例如在本地将一张图像编码压缩成JPEG格式后通过网络传输出去,接收端接收到之后再将其解码,用于显示,或者直接存储到存储介质上。当然,如果不考虑传输数据量,或者有一些特殊需求也可以直接将图像对象序列化后传输。本文只讨论前者,关于图像对象序列化可以参考我的另一篇文章《图像序列化》。

那么整理一下,这个过程也就分为3个步骤:
1、发送端图像编码。
2、以字节流的方式在网络上传输;
3、接收端解码。

图像编码
因为图像编码解码主要目的是针对图像在网络中的传输,所以编码之后的图像不必保存在硬盘上,可以直接放入一个字节数组。

publicbyte[]getCompressedImage(BufferedImageimage)...{
byte[]imageData=null;

try...{
ByteArrayOutputStreambaos
=newByteArrayOutputStream();
ImageIO.write(image,
"jpg",baos);
imageData
=baos.toByteArray();
}
catch(IOExceptionex)...{
imageData
=null;
}


returnimageData;
}


图像解码
接收端接收到表示图像数据的字节数组后,对其进行解码,得到图像对象。因为我们在发送端将其编码成JPEG格式,所以可以直接在接收端使用ImageIO对其进行解码。

publicBufferedImagegetDecompressedImage(byte[]imageData)...{
try...{
ByteArrayInputStreambais
=newByteArrayInputStream(imageData);
returnImageIO.read(bais);
}
catch(IOExceptionex)...{
returnnull;
}

}

网络传输
因为图像编码之后是一个存在于内存中的字节数组,所以可以使用IO流的方式将其发送到网络的接收端,接收端建立链接将其接收。最常用的例如建立 Socket 连接等等。这部分代码讲IO的书里都有,我就不在这里写了。
分享到:
评论

相关推荐

    实验七 在网络中传输图像.rar_c 图像传输_site:www.pudn.com_图像 传输_图像 网络_网络技术

    在实际的网络传输中,为了加快传输速度,可能会对图像进行分块处理,然后分别传输,这就是所谓的流式传输。客户端在接收到一部分数据后就可以开始解码显示,无需等待整个文件传输完毕。此外,为了应对网络延迟或丢包...

    Zigbee网络中的图像传输

    在Zigbee网络中进行图像传输时,通常会采用JPEG、JPEG-2000以及矩形块_零树编码等压缩技术来减少数据量,提高传输效率。 - **JPEG**: 是一种广泛使用的有损压缩技术,特别适合于彩色图像的压缩。JPEG通过离散余弦...

    十分简单的桌面图像传输程序

    标题中的“十分简单的桌面图像传输程序”指的是一个专为个人电脑设计的小型应用程序,它能够方便地在两台计算机之间传输图像文件。这个程序的核心功能是图像共享,它简化了传统文件传输过程,使得用户无需复杂的网络...

    Camera__Client.rar_图像传输_网络图像传输_远程 图像

    在实时传输中,可能会采用更高效的H.264或HEVC(High Efficiency Video Coding)视频编码标准,这些标准在保持图像质量的同时,显著减少了数据量。 此外,远程图像传输还涉及到多方面的技术挑战,如延迟控制、错误...

    基于Linux的视频图像处理及其网络传输监控系统.pdf

    H.264是一种高效视频编码标准,能够在保持图像质量的同时,显著减少视频数据的大小,从而降低网络传输的带宽需求。这对于实时监控和远程传输至关重要,尤其是在网络环境不稳定或带宽有限的情况下。 网络传输方面,...

    网络传输图像 分为工作端和远程控制端

    在IT领域,网络传输图像是一项关键技术,特别是在远程监控、视频会议、在线教育和实时通信等行业中广泛应用。"网络传输图像 分为工作端和远程控制端"这个标题揭示了该技术的核心概念,即图像数据的发送与接收是通过...

    Delphi利用流实现网络传输屏幕图像含有源代码

    在IT行业中,开发人员经常需要实现跨设备的数据传输,特别是在实时监控、远程协助等领域,屏幕图像的网络传输是一项重要的技术。本示例介绍的是如何在Delphi编程环境中利用流(Stream)来实现网络上的屏幕图像传输,...

    图像处理与无线传输方案

    在图像无线传输中,考虑到图像数据量大、实时性要求高的特点,选择合适的无线传输方案至关重要。 将图像处理与无线传输结合,首要解决的问题是如何在有限的带宽下高效传输图像数据。这通常需要采用数据压缩技术,如...

    基于ARm Linux嵌入式图像采集与网络传输系统

    ARM Linux 嵌入式系统在图像采集和网络传输领域的应用越来越广泛,本论文详细介绍了基于ARM Linux的嵌入式图像采集与网络传输系统的设计过程。 总体设计 本系统的总体设计是指将ARM Linux嵌入式系统应用于图像采集...

    TCP通讯_labview之Tcp/IP进行图像传输_

    1. **图像编码**:在发送图像前,LabVIEW可以使用图像处理库将图片转换为适合网络传输的格式。常见的有位图(BMP)、JPEG或PNG等。JPEG适用于连续色调图像,PNG支持透明度且无损压缩。 2. **分块传输**:由于TCP/IP...

    基于C#的tcp图像传输

    TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,适合于大数据量、高稳定性的网络传输场景,如图像、视频等。 【描述】中的关键信息表明,该程序已在Visual Studio ...

    QT之TCP网络数据(文本和图像数据)传输

    在"QT之TCP网络数据(文本和图像数据)传输"的项目中,主要涉及以下几个关键知识点: 1. **QT的网络模块**:QT提供了丰富的网络编程接口,如QTcpSocket、QTcpServer等,它们位于`QTcpServer`和`QTcpSocket`类中,...

    matlab下的图像渐进传输

    在网络传输时,每个压缩过的块可以通过HTTP或其他协议逐个发送。 在接收端,MATLAB的`imread`函数可以用来读取接收到的数据块,并使用`imreconstruct`函数将它们组合成完整图像。需要注意的是,由于可能存在的网络...

    VB开发局域网图像传输

    【VB开发局域网图像传输】是一个基于Visual Basic(VB)编程环境的项目,主要涉及的是在局域网内通过网络通信技术实现图像的传输。这个项目利用了Winsock控件来实现网络通信,它是Windows Sockets接口的一个封装,...

Global site tag (gtag.js) - Google Analytics