`
leo1211
  • 浏览: 140407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA中实现图片对象转换成图片文件和字节数组

阅读更多
JAVA中实现图片对象转换成图片文件和字节数组(Byte[ ])的方法讨论
网上关于这方面的讨论其实有很多,但找起来也不太容易,笔者以JMSL4.0画出的chart对象为例阐释这一过程,希望能带来些启发。

import com.imsl.chart.*;
import java.awt.image.BufferedImage;
import java.io.*;

import javax.imageio.stream.FileImageOutputStream;
import javax.imageio.stream.ImageOutputStream;

public class SampleImageIO {
    public byte[] getByteArray() {
        byte[] b = null;
        try{
        Chart chart = createChart();//generate image
        chart.setScreenSize(new java.awt.Dimension(500,500));
        BufferedImage bi = new BufferedImage(500, 500, BufferedImage.TYPE_4BYTE_ABGR_PRE);
        chart.paintChart(bi.createGraphics()); //generate buffered image

//感觉bufferedimage经常和imageIO成对出现作为对图像对象的标准转化形式。
        File file = new File("D:\\workspace\\SampleImageIO1.png");//deploy file
        javax.imageio.ImageIO.write(bi, "PNG", file);//generate file
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        javax.imageio.ImageIO.write(bi, "png", bos);
        b = bos.toByteArray();//generate byte[]


        //check to get the byte[]

//其实byte[]的最大的用途应该是网站的图片动态显示,下面的code只是实验一下,也顺便介绍一下byte[]转换成文件的操作。
        String newFileName = "d:\\temp\\wine1.png";
        FileImageOutputStream imageOutput = new FileImageOutputStream(new File(newFileName));
        imageOutput.write(b, 0, b.length);
        imageOutput.close();
        System.out.println("Please find image in " + newFileName);       
        }
        catch(Exception ex) {
            System.out.println("Exception: " + ex);
            ex.printStackTrace();           
        }
        return b;
    }

//jmsl画图的code,挺快的,好用,但是人家是收费的library~~,抛砖引玉吧

    static Chart createChart() {       
        Chart chart = new Chart();
        AxisXY axis = new AxisXY(chart);     
        int npoints = 20;
        double dx = .5 * Math.PI/(npoints-1);
        double x[] = new double[npoints];       
        double y[] = new double[npoints];     

        // Generate some data      
        for (int i = 0; i < npoints; i++){           
            x[i] = i * dx;           
            y[i] = Math.cos(x[i]);           
        }       
        new Data(axis, x, y);  
        return chart;
    }   
}


分享到:
评论

相关推荐

    java中把对象转化为byte数组的方法.doc

    java中把对象转化为byte数组的方法 Java 中将对象转化为 byte 数组的方法是指将 Java 对象序列化为二进制数据流,以便在网络上传输或存储。这种方法可以应用于各种领域,如分布式计算、网络通信、数据存储等。 在 ...

    Java实现字节流与图片的转化

    使用`FileOutputStream`类,将字节数组写回到新的图片文件中: ```java File outputFile = new File("output.jpg"); FileOutputStream fos = new FileOutputStream(outputFile); fos.write(imageData); fos....

    java实现的字节数组转换成基本类型,基本类型转换成byte[]

    char short int long float double 转换成byte数组

    字节数组流byte文件

    不过,通常的处理流程是将这些二进制数据读取到内存中,形成一个字节数组流(byte[]),然后可以利用各种库如nodejs中的Buffer类或Java中的ByteBuffer类来对这些数据进行读取、写入和转换。 在技术实现上,如果我们...

    图片文件与Base64编码字节数组字符串互转

    在IT领域,尤其是在Web开发中,图片文件与Base64编码字节数组字符串的转换是一种常见的操作。这种转换在不直接使用图片文件路径或URL,而是将图片数据嵌入到HTML、CSS或JavaScript中时非常有用。下面我们将详细探讨...

    Java将图片转换为byte数组例子总结

    3. **流操作**:通过`ByteArrayOutputStream`对象来保存图像数据,并利用`ImageIO.write()`方法将缓冲图像写入到字节数组中。 4. **异常处理**:如果在写入过程中发生`IOException`,则捕获并打印堆栈跟踪信息。 5. ...

    JAVA二进制字节数组字符十六进制BCD编码转换.doc

    在Java编程中,二进制、字节数组、字符、十六进制和BCD(Binary-Coded Decimal,二进制编码的十进制)编码转换是常见的数据处理任务。以下将详细介绍这些概念以及如何在Java中进行相关操作。 1. **二进制与十六进制...

    Java实现字节流与图片的转化Java源码

    2. **读取字节**:调用InputStream的read()方法,将图片文件的每个字节读取到一个字节数组中。 3. **处理字节数组**:读取到的字节数组就是图片的二进制表示,可以根据需要进行传输或存储。 4. **关闭流**:在完成...

    Java字节数组与常见类型转换工具

    Java字节数组与常见类型转换工具,包括byte[] 与int long double float string boolean 等类型的相互转换。

    将图片转成二进制并生成Base64编码字符串,再将二进制转换成各种图片

    接着,`BufferedImage`可以转化为`byte[]`,通过`ImageIO.write`方法的`getRGB`函数获取图像的像素数据,最后将这些像素数据转换为字节数组。 2. **将字节数组转换为Base64字符串**: Java标准库中的`java.util....

    JAVA作业三字节数组转化.docx

    `bytesToInt`方法是大端字节序的还原,它依次将字节数组中的每个元素(从offset开始)左移适当位数并按位或(`|`)操作,最后组合成原始的int值。`bytesToInt2`方法则是小端字节序的还原,它也是通过左移和按位或操作...

    java中两个byte数组实现合并的示例

    这是通过创建一个新的足够大的字节数组`data3`来实现的,其长度等于`data1`和`data2`的长度之和,然后利用`System.arraycopy()`方法将`data1`和`data2`的内容复制到新数组中。 ```java public static byte[] ...

    php字符串与byte字节数组转化类.zip

    介绍php字符串与byte字节数组转化类,转换一个String字符串为byte数组,将字节数组转化为String类型的数据,转换一个int为byte数组,从字节数组中指定的位置读取一个Integer类型的数据,转换一个shor字符串为byte...

    java基本类型与byte数组互相转换.pdf

    字符类型在 Java 中是 16 位的 Unicode 字符,转换成 byte 数组需要将字符类型转换成 int 类型,然后将 int 类型转换成 byte 数组。例如: ```java public static byte[] charToByteArr(char ch) { byte[] b = new...

    Java实现多个wav文件合成一个的方法示例

    在上面的代码中,我们使用了`intToByteArray`方法将整数类型转换为字节数组,以便写入wav文件中。 知识点4:Java中的IO操作 Java中的IO操作是通过使用`java.io`包中的类来实现的。在上面的代码中,我们使用了`...

    Java byte数组与其他类型转换

    `putShort`和`getShort`方法用于在字节数组中写入和读取short值。这两个方法内部都采用了位移操作来完成转换。例如,`putShort`方法通过右移8位将高字节存储到索引位置,然后将低字节存储到索引+1的位置。而`...

    java中把对象转化为byte数组的方法.pdf

    Java 对象与 byte 数组之间的转换方法 Java 是一种 popular 的编程语言...通过使用 ObjectOutputStream、ByteArrayOutputStream、ObjectInputStream 和 ByteArrayInputStream,可以轻松地实现对象到 byte 数组的转换。

    Java实现图片和Base64之间的相互转化

    2. **转换为字节数组**:使用`java.nio.file.Files`类的`readAllBytes()`方法将图片文件转换为字节数组。 3. **Base64编码**:使用`java.util.Base64`类的`getEncoder().encodeToString()`方法对字节数组进行Base64...

    转换Image数据为byte数组

    下面,我们将深入探讨如何在Java中实现图像数据与字节数组之间的相互转换,并分析这一过程中的关键步骤和技术细节。 ### 转换Image数据为byte数组 #### 方法一:`imageToBytes`函数解析 在Java中,将`Image`对象...

    J2ME 字符型转化成字节数组

    - **文件读写**:在读写文件时,可能需要将字符转换为字节数组存储,或者从字节数组中恢复出字符数据。 - **加密解密**:在加密算法中,通常会涉及对字节数组的操作,因此需要将原始字符数据转换为字节数组。 - **...

Global site tag (gtag.js) - Google Analytics