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;
}
}
分享到:
相关推荐
char short int long float double 转换成byte数组
Java字节数组与常见类型转换工具,包括byte[] 与int long double float string boolean 等类型的相互转换。
JAVA二进制字节数组字符十六进制BCD编码转换
介绍php字符串与byte字节数组转化类,转换一个String字符串为byte数组,将字节数组转化为String类型的数据,转换一个int为byte数组,从字节数组中指定的位置读取一个Integer类型的数据,转换一个shor字符串为byte...
java中把对象转化为byte数组的方法.doc
作业三 字节数组与int类型之间的转化 (1) 将int转化为长度为4的字节数组; (2) 将长度为4的字节数组转为为int类型。
/* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */
java基本类型与byte数组互相转换.pdf
Java bytes数组与基本类型的相互转换 Int -> Bytes int64ToByte8 int48ToByte6 int40ToByte5 int32ToByte4 int24ToByte3 int16ToByte2 int8ToByte Bytes -> Int bytesToInt64 bytesToInt48 bytesToInt40 bytesTo...
主要介绍了Java 将文件转为字节数组实例详解的相关资料,需要的朋友可以参考下
字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组。 Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流...
NULL 博文链接:https://aqbbsxiao.iteye.com/blog/1678039
最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是 十进制,十六进制,二进制中间的转换。还包括了一个字节数组 与十六进制字符串的互相转换。估计遇到蓝牙通信的朋友,应该用的上。
主要为大家详细介绍了java对象转成byte数组的3种方法,具有一定的参考价值,感兴趣的朋友可以参考一下
ip地址转4字节byte,char转2字节byte,byte数组转char,int整数转换为4字节的byte数组,byte数组转换为int整数,double类型转8字节数组,8位数组转double,long整数转换为8字节的byte数组,short整数转换为2字节的...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
字符型转化成字节数组 在J2ME中使用非常方便,尤其用于脚本制作或读取等相关方面
可以将 Float、 Double、 与byte[]之间进行互换,从而可以在Java 的开发环境中实现C语言的Union 的功能! /** * 对数字和字节进行转换。 * 基础知识: * 假设数据存储是以大端模式存储的: * byte:...
支持任何形式的aes加密,文件,字符,字节等,内含php代码,可以与php平台实现aes加密,而且包含rsa非对称加密签名验签实现,都是对字节数组的加密解密,签名验签,支持多种形式的的,可以将待操作的对象转换成字节...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...