程序已经写好一部分:
import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.MemoryImageSource;
import java.awt.image.PixelGrabber;
import java.awt.*;import java.io.*;
import java.io.File;
import java.io.IOException;import java.util.LinkedList;
import java.util.*;import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;class JpegToBmpFrame extends JFrame {//保存当前操作的像素矩阵
private int currentPixArray[]=null;//图像的路径
private String fileString=null;
//用于显示图像的标签
private JLabel imageLabel=null;//加载的图像
private BufferedImage newImage;//图像的高和宽
private int h,w;//保存历史操作图像矩阵
private LinkedList<int[]> imageStack=new LinkedList<int []>();
private LinkedList<int []> tempImageStack=new LinkedList<int []>();
public JpegToBmpFrame(String title){
super(title);
this.setSize(800,600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建菜单
JMenuBar jb=new JMenuBar();
JMenu fileMenu=new JMenu("文件");
jb.add(fileMenu);
JMenuItem openImageMenuItem=new JMenuItem("打开");
fileMenu.add(openImageMenuItem);
openImageMenuItem.addActionListener(new OpenListener());
JMenuItem exitMenu=new JMenuItem("退出");
fileMenu.add(exitMenu);
exitMenu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
JMenu operateMenu=new JMenu("操作");
jb.add(operateMenu);
JMenuItem ChToBmpMenuItem=new JMenuItem("转成BMP");
operateMenu.add(ChToBmpMenuItem);
//ChToBmpMenuItem.addActionListener(new ChToBmpListener());
this.setJMenuBar(jb);
imageLabel=new JLabel("");
JScrollPane pane = new JScrollPane(imageLabel);
this.add(pane,BorderLayout.CENTER);
this.setVisible(true);
}//////////////////菜单监听器\\\\\\\\\\\\\\\\\\\\\\\
/*private class ChToBmpListener implements ActionListener{
public void ActionDo(ActionEvent c){
try
{
//利用系统输入设备作为文件输入流
FileInput
}
}
}*/
//////////////////菜单监听器\\\\\\\\\\\\\\\\\\\\\\\
private class OpenListener implements ActionListener{
public void actionPerformed(ActionEvent e){
JFileChooser jc=new JFileChooser();
int returnValue=jc.showOpenDialog(null);
if (returnValue ==JFileChooser.APPROVE_OPTION) {
File selectedFile =jc.getSelectedFile();
if (selectedFile != null) {
fileString=selectedFile.getAbsolutePath();
try{
newImage =ImageIO.read(new File(fileString));
w=newImage.getWidth();
h=newImage.getHeight();
currentPixArray=getPixArray(newImage,w,h);
imageStack.clear();
tempImageStack.clear();
imageStack.addLast(currentPixArray);
imageLabel.setIcon(new ImageIcon(newImage));
}catch(IOException ex){
System.out.println(ex);
}
}
}
JpegToBmpFrame.this.repaint();
JpegToBmpFrame.this.pack();
}
}
//////////////////获取图像像素矩阵\\\\\\\\\\\\\\\\\\\
private int[]getPixArray(Image im,int w,int h){
int[] pix=new int[w*h];
PixelGrabber pg=null;
try{
pg = new PixelGrabber(im, 0, 0, w, h, pix, 0, w);
if(pg.grabPixels()!=true)
try{
throw new java.awt.AWTException("pg error"+pg.status());
}catch(Exception eq){
eq.printStackTrace();
}
} catch(Exception ex){
ex.printStackTrace(); }
return pix;
} //////////////////显示图片\\\\\\\\\\\\\\\\\\\\\\\
private void showImage(int[] srcPixArray){
Image pic=createImage(new MemoryImageSource(w,h,srcPixArray,0,w));
ImageIcon ic=new ImageIcon(pic);
imageLabel.setIcon(ic);
imageLabel.repaint();
}
public static void main(String[] args) {
new JpegToBmpFrame("ShowImage");
}}
以上代码已经实现从磁盘读出一张jpeg图片,老师要求的读出的jpeg按BMp格式写到磁盘中,要求用windows中能打开,并且它的属性是BMP图像的属性.帮帮忙吧,这是小弟的一次综合性实验,关系到期末成绩的大事.小弟的
import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.MemoryImageSource;
import java.awt.image.PixelGrabber;
import java.awt.*;import java.io.*;
import java.io.File;
import java.io.IOException;import java.util.LinkedList;
import java.util.*;import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;class JpegToBmpFrame extends JFrame {//保存当前操作的像素矩阵
private int currentPixArray[]=null;//图像的路径
private String fileString=null;
//用于显示图像的标签
private JLabel imageLabel=null;//加载的图像
private BufferedImage newImage;//图像的高和宽
private int h,w;//保存历史操作图像矩阵
private LinkedList<int[]> imageStack=new LinkedList<int []>();
private LinkedList<int []> tempImageStack=new LinkedList<int []>();
public JpegToBmpFrame(String title){
super(title);
this.setSize(800,600);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//创建菜单
JMenuBar jb=new JMenuBar();
JMenu fileMenu=new JMenu("文件");
jb.add(fileMenu);
JMenuItem openImageMenuItem=new JMenuItem("打开");
fileMenu.add(openImageMenuItem);
openImageMenuItem.addActionListener(new OpenListener());
JMenuItem exitMenu=new JMenuItem("退出");
fileMenu.add(exitMenu);
exitMenu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
JMenu operateMenu=new JMenu("操作");
jb.add(operateMenu);
JMenuItem ChToBmpMenuItem=new JMenuItem("转成BMP");
operateMenu.add(ChToBmpMenuItem);
//ChToBmpMenuItem.addActionListener(new ChToBmpListener());
this.setJMenuBar(jb);
imageLabel=new JLabel("");
JScrollPane pane = new JScrollPane(imageLabel);
this.add(pane,BorderLayout.CENTER);
this.setVisible(true);
}//////////////////菜单监听器\\\\\\\\\\\\\\\\\\\\\\\
/*private class ChToBmpListener implements ActionListener{
public void ActionDo(ActionEvent c){
try
{
//利用系统输入设备作为文件输入流
FileInput
}
}
}*/
//////////////////菜单监听器\\\\\\\\\\\\\\\\\\\\\\\
private class OpenListener implements ActionListener{
public void actionPerformed(ActionEvent e){
JFileChooser jc=new JFileChooser();
int returnValue=jc.showOpenDialog(null);
if (returnValue ==JFileChooser.APPROVE_OPTION) {
File selectedFile =jc.getSelectedFile();
if (selectedFile != null) {
fileString=selectedFile.getAbsolutePath();
try{
newImage =ImageIO.read(new File(fileString));
w=newImage.getWidth();
h=newImage.getHeight();
currentPixArray=getPixArray(newImage,w,h);
imageStack.clear();
tempImageStack.clear();
imageStack.addLast(currentPixArray);
imageLabel.setIcon(new ImageIcon(newImage));
}catch(IOException ex){
System.out.println(ex);
}
}
}
JpegToBmpFrame.this.repaint();
JpegToBmpFrame.this.pack();
}
}
//////////////////获取图像像素矩阵\\\\\\\\\\\\\\\\\\\
private int[]getPixArray(Image im,int w,int h){
int[] pix=new int[w*h];
PixelGrabber pg=null;
try{
pg = new PixelGrabber(im, 0, 0, w, h, pix, 0, w);
if(pg.grabPixels()!=true)
try{
throw new java.awt.AWTException("pg error"+pg.status());
}catch(Exception eq){
eq.printStackTrace();
}
} catch(Exception ex){
ex.printStackTrace(); }
return pix;
} //////////////////显示图片\\\\\\\\\\\\\\\\\\\\\\\
private void showImage(int[] srcPixArray){
Image pic=createImage(new MemoryImageSource(w,h,srcPixArray,0,w));
ImageIcon ic=new ImageIcon(pic);
imageLabel.setIcon(ic);
imageLabel.repaint();
}
public static void main(String[] args) {
new JpegToBmpFrame("ShowImage");
}}
以上代码已经实现从磁盘读出一张jpeg图片,老师要求的读出的jpeg按BMp格式写到磁盘中,要求用windows中能打开,并且它的属性是BMP图像的属性.帮帮忙吧,这是小弟的一次综合性实验,关系到期末成绩的大事.小弟的
解决方案 »
- 马上就要面试了,版帮忙! 进制的转换问题
- 一个JDBC小问题,实在搞不清楚!!!
- <求助>java运行难题~
- 高手帮我一下
- 急!!高手们,请问Vector、ArrayList和List的异同!
- 关于一个替换字符的问题,恳请高手指教!
- 画一个十个点的坐标轴
- 请推荐一些java书:要求例子多,实用等,试用有点基础的人来提高的
- 请教高手:这是为什么呢?
- 调查,有多少公司在开发之前先做Testcase的,另外,对于已有系统结构的重新整理(8 packages and 572 files),大家估计要多少人月。
- 为什么server无法正确读取message sequence number并且显示?谢谢!
- 请教:.dat文件转byte数组时,数据是乱码,如何转中文?
BufferedImage image = ImageIO.read(new File("test.jpg"));写bmp
ImageIO.write(image, "bmp", new File("test.bmp"));