使用J2SE1.4新特性来获取图象资源
下面的这个例子示范怎样使用javax.imageio包来从一个文件、输入流或URL获取图象资源,同时也示范了如何来把Image显示到屏幕上. javax.imageio包默认支持GIF,PNG和JPEG格式的图片,这个例子只能工作在J2SE1.4或以上版本
Image image = null;
try {
File file = new File("image.gif");
image = ImageIO.read(file);
InputStream is = new BufferedInputStream(
new FileInputStream("image.gif"));
image = ImageIO.read(is);
URL url = new URL("http://hostname.com/image.gif");
image = ImageIO.read(url);
} catch (IOException e) {
}
JFrame frame = new JFrame();
JLabel label = new JLabel(new ImageIcon(image));
frame.getContentPane().add(label, BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
包javax.imageio默认可以读和写一个GIF,PNG和JPEG图片,你可以调用ImageIO.getReaderFormatNames() 和ImageIO.getWriterFormatNames()来列出全部可读和可写的图片格式
String[] formatNames = ImageIO.getReaderFormatNames();
formatNames = unique(formatNames);
formatNames = ImageIO.getWriterFormatNames();
formatNames = unique(formatNames);
// png jpeg jpg
formatNames = ImageIO.getReaderMIMETypes();
formatNames = unique(formatNames);
// image/jpeg image/png image/x-png image/gif
formatNames = ImageIO.getWriterMIMETypes();
formatNames = unique(formatNames);
// image/jpeg image/png image/x-png
public static String[] unique(String[] strings) {
Set set = new HashSet();
for (int i=0; i< } String[0]); (String[])set.toArray(new return set.add(name); name="strings[i].toLowerCase();" String { i++)>
图片格式的转换(jpg 转为 png)
package jpgToPng;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* jpg转为png
* @author steve_wang_victor
*
*/
public class JpegToPng {
/**
* @param args
*/
public static void main(String[] args) {
BufferedImage bufferedImage = null;
File file = new File("D:/excel/123.jpg".replace("jpg", "png"));
try {
bufferedImage = ImageIO.read(new File("D:/excel/123.jpg"));
ImageIO.write(bufferedImage, "png", file);//将bufferedImage图片的格式读进来,转为png格式
} catch (IOException e) {
e.printStackTrace();
}
}
}