我用java的GifEncoder和JPEGImageEncoder来实现java图片的显示和保存 但是在保存的时候总是只能保存其中一种格式 如过是Jpg格式的话保存后 仍是Gif格式 反过来相同…… private void saveImage()
{
if(flag==1)
{
try
{
int saved=fileChooser.showSaveDialog(this);
if(saved==fileChooser.APPROVE_OPTION)
{
File filenameSave=fileChooser.getSelectedFile();
String filename=new String(filenameSave.getPath()+".jpg");
FileOutputStream out=new FileOutputStream(filename);
FileInputStream in=new FileInputStream(this.openFile.toString());
tempImage=ImageIO.read(in);
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode((BufferedImage) tempImage);
out.flush();
out.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
else if(flag==0)
{
try
{
int saved=fileChooser.showSaveDialog(this);
if(saved==fileChooser.APPROVE_OPTION)
{
File filenameSave=fileChooser.getSelectedFile();
String filename=new String(filenameSave.getPath()+".gif");
FileOutputStream out=new FileOutputStream(filename);
FileInputStream in=new FileInputStream(this.openFile.toString());
BufferedImage tempImage=ImageIO.read(in);
encoder1=new GifEncoder(tempImage,out);
encoder1.encode();
out.flush();
out.close();
in.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
} 保存按钮的响应事件代码:
switch(flag)
{
case 0:
{
flag=0;
this.saveImage();
}break;
case 1:
{
flag=1;
this.saveImage();
}break;
}
{
if(flag==1)
{
try
{
int saved=fileChooser.showSaveDialog(this);
if(saved==fileChooser.APPROVE_OPTION)
{
File filenameSave=fileChooser.getSelectedFile();
String filename=new String(filenameSave.getPath()+".jpg");
FileOutputStream out=new FileOutputStream(filename);
FileInputStream in=new FileInputStream(this.openFile.toString());
tempImage=ImageIO.read(in);
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode((BufferedImage) tempImage);
out.flush();
out.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
else if(flag==0)
{
try
{
int saved=fileChooser.showSaveDialog(this);
if(saved==fileChooser.APPROVE_OPTION)
{
File filenameSave=fileChooser.getSelectedFile();
String filename=new String(filenameSave.getPath()+".gif");
FileOutputStream out=new FileOutputStream(filename);
FileInputStream in=new FileInputStream(this.openFile.toString());
BufferedImage tempImage=ImageIO.read(in);
encoder1=new GifEncoder(tempImage,out);
encoder1.encode();
out.flush();
out.close();
in.close();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
} 保存按钮的响应事件代码:
switch(flag)
{
case 0:
{
flag=0;
this.saveImage();
}break;
case 1:
{
flag=1;
this.saveImage();
}break;
}
解决方案 »
- Runtime.exec()只在linux上执行命令,生成的文件总是默认放在了eclipse工程的根目录下?!
- java时间合并问题...
- 第一次运行java程序就如此郁闷
- 各位大哥讲解下DatabaseMetaData中的gettable(s)使用方法,谢谢啦!
- 应该是与范型有关的问题
- 在2000advance中怎么配置java????
- 高分求JCreator2.5 和 GhostSurf最新版(不是1.5版) 的注册方法.($700).
- 各位:
- 我用Runtime类的exec方法打开windows的ping,怎么让控制台隐藏?
- 关于泛型的问题~~~~
- 关于Image能加监听吗
- 类ShowEscapeSequences是公共的,应在名为ShowEscapeSequences.java的文件中声明 ???
int imgType=flname.lastIndexOf(".");
String imgTypeStr=flname.substring(imgType);if(!imgTypeStr.equals(".jpg")&&!imgTypeStr.equals(".gif")&&!imgTypeStr.equals(".jpeg")&&!imgTypeStr.equals(".png")&&!imgTypeStr.equals(".swf")){
}
这样就可以了。