使用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(); } }
}
|