知识大全 Java图像传输方法

Posted

篇首语:提兵百万西湖上,立马吴山第一峰!本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java图像传输方法相关的知识,希望对你有一定的参考价值。

Java图像传输方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一 序列化后传输

  图像对象可以编码成指定图像格式文件保存在硬盘上 需要时再对其进行解码读入内存 但是除了这样还有别的办法可以将图像对象保存在硬盘上吗?熟悉Java I/O 的人也许可以想到采用对象序列化(Object serialization) BufferedImage 提供一般图像管理

  BufferedImage 对象包括另外两个对象 Raster 和 ColorModel Raster 对象包含另外两个对象 DataBuffer 和 SampleModel 不幸的是 他们都没有实现序列化所必需的 Serializable 接口 所以无法直接对他们进行对象序列化 JAI 的 dia jai remote 包里有一个类 SerializableRenderedImage 这个类实现了RenderedImage Serializable 接口 可以将 RanderedImage 对象作为构造函数的参数实例化一个可以序列化的图像对象

  查看JDK的文档可以知道无论 Java D 中的 BufferedImage 还是 JAI 中的 PlanarImage 都实现了 RenderedImage 接口 也就是说所有实现自 RenderedImage

  

  接口的对象均可作为参数包装出一个 SerializableRenderedImage 类型对象 将其序列化

  下面是一个简单的例子说明了这个类的使用方法

  查看复制到剪切板打印

  import java io *;

  import dia jai remote *;

  import java awt image *;

  public class SomeSerializableClass implements Serializable

  protected transient RenderedImage image;

  public SomeSerializableClass(RenderedImage image)

  this image = image;

  

  // Serialization method

  private void writeObject(ObjectOutputStream out) throws

  IOException

  out defaultWriteObject();

  out writeObject(new SerializableRenderedImage(image true));

  

  // Deserialization method

  private void readObject(ObjectInputStream in) throws IOException ClassNotFoundException

  in defaultReadObject();

  image = (RenderedImage) in readObject();

  

  

  二 以字节流的方式传输

   图像编码

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

  查看复制到剪切板打印

  public byte[] getCompressedImage(BufferedImage image)

  byte[] imageData = null;

  try

  ByteArrayOutputStream baos = new ByteArrayOutputStream();

  ImageIO write(image jpg baos);

  imageData = baos toByteArray();

   catch (IOException ex)

  imageData = null;

  

  return imageData;

  

   图像解码

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

  查看复制到剪切板打印

  public BufferedImage getDepressedImage(byte[] imageData)

  try

  ByteArrayInputStream bais = new ByteArrayInputStream(imageData);

  return ImageIO read(bais);

   catch (IOException ex)

  return null;

  

  

   网络传输

cha138/Article/program/Java/hx/201311/25572

相关参考

知识大全 java数字图像处理常用算法

    前些时候做毕业设计用java做的数字图像处理方面的东西这方面的资料ms比较少发点东西上来大家共享一下主要就是些算法有自己写的有人家的还有改人家的有的算法

知识大全 一个用java演示的产生图像烟花的算法

  以下是一个用java演示的产生图像烟花的算法可以用来研究以下相关的东西希望对有兴趣的朋友有用  import  javaappletAudioClip;  import&nbs

知识大全 用JAI扩展Java的图像处理能力

用JAI扩展Java的图像处理能力  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishixinz

知识大全 Java Applet编程之实现显示图像

JavaApplet编程之实现显示图像  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JavaA

知识大全 Java Socket网络传输的序列化机制

JavaSocket网络传输的序列化机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java

知识大全 Java Socket编程(一)Socket传输模式

JavaSocket编程(一)Socket传输模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Java Socket传输数据的文件系统介绍

JavaSocket传输数据的文件系统介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Jav

知识大全 Java获取及修改图像的RGB值和Alpha值

Java获取及修改图像的RGB值和Alpha值  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  /

知识大全 Java Applet编程之声音和图像的协调

JavaApplet编程之声音和图像的协调  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在有些

知识大全 java图片处理类(图片水印,图片缩放)

  可实现以下常用功能缩放图像切割图像图像类型转换彩色转黑白文字水印图片水印等  代码如下复制代码importjavaawtAlphaComposite;importjavaawtColor;impo