跪问用java处理jpg图象的问题
我通过BufferedImage对象把JPG图象数据读入内存,并用自己定义的ImageAPI.convert(bufimg)方法把图象数据存放在一维数组byte[] pic里,然后我用自己定义的ImageAPI.convert(bufimg)再对该一维数组进行处理得到处理好的图象数据byte[] data。现在,我不知道如何把data用JPEG算法压缩一下,变成和原来直接从JPG图象里取出来的一样。请各位达人帮忙啊!
代码如下:
BufferedImage bufimg=null;
try{
bufimg=ImageIO.read(new File(imageFile));
}catch(IOException e){System.out.println(e.getMessage());}
byte[] pic=ImageAPI.convert(bufimg); ///转换为一维数组
byte[] data=ExpandAPI.transform(pic);///处理图象,得到byte[] data
希望把data用JPEG算法处理过后,效果和下面从图象文件中取出来的byte[] file一样
RandomAccessFile raFile;byte[] file=null;
raFile = new RandomAccessFile(imageFile, "r");
raFile.readFully(file, 0, (int) raFile.length());
问题点数:100、回复次数:8Top
1 楼homesos(熊猫贩子)回复于 2005-08-04 17:11:32 得分 10
不懂
帮顶Top
2 楼kevin0920(kevin)回复于 2005-08-04 22:10:54 得分 0
请高手帮帮忙阿!Top
3 楼bon_jovi(西门疯雪)回复于 2005-08-04 22:19:19 得分 20
试试com.sun.image.codec.jpeg.JPEGCodecTop
4 楼a_thens(睡兰)回复于 2005-08-05 11:38:03 得分 0
太深奥了 看不懂Top
5 楼OO00(四个圈)回复于 2005-08-05 11:52:48 得分 0
upTop
6 楼troyzhang(troyzhang)回复于 2005-08-05 14:02:29 得分 50
package image.test;
import java.io.*;
public class ImageDemo {
public ImageDemo() {
}
public static void main(String[] args) {
try{
java.io.RandomAccessFile raFile = new java.io.RandomAccessFile(new File(
"c:\\yan.jpg"), "rw");
System.out.println(raFile.length());
byte [] bytes=new byte[(int)raFile.length()];
raFile.readFully(bytes, 0, (int) raFile.length());
bytes[2222]=1;
FileOutputStream fos=new FileOutputStream(new File("C:\\a.jpg"));
fos.write(bytes);
fos.close();
}catch(Exception e){
e.printStackTrace();
}
}
}Top
7 楼troyzhang(troyzhang)回复于 2005-08-05 14:03:01 得分 20
如果byte []在你的处理过程中结构没有变化的话,这个应该可以的。Top
8 楼kevin0920(kevin)回复于 2005-08-05 16:48:29 得分 0
可能是我没有说清楚,大家误解了.
经过处理后byte[] data里存放着没有经过压缩的图象数据(好比是.bmp图片里读取的数据一样)。
我要做的是把data数组里的数据用JPEG算法压缩一下,得到压缩后的数据,并保存在byte[]里。但不要保存成文件形式。Top




