您的位置:

javaimage,javaimageicon缩小图片

本文目录一览:

java image

java image是什么,让我们一起了解一下?

Image主要是实现读取图片文件(Image.FromFile)和保存图像文件(Image.Save)。只要将图片转为Image类之后,就可以用.Net里面强大的GDI+功能,但GDI+必须先要创建Graphics。

那么如何创建Image图像?

1、通过文件选择器选择文件,创建File文件,创建Image图像。

Image images = new Image();      JFileChooser chooser = new JFileChooser();       chooser.setName("选择");       chooser.setMultiSelectionEnabled(false);     //设置文件选择器只能选择单个文件       int result = chooser.showOpenDialog(this);   //打开文件选择器                if(result == JFileChooser.APPROVE_OPTION){             File file = chooser.getSelectedFile();               try{                                 //对异常进行处理                  images = ImageIO.read(file);               }catch(IOException e){                  e.printStackTrace();               }       }

2、通过Toolkit工具中的函数创建Image图像。 Image images = new Image(); Toolkit tool = Toolkit.getDefaultToolkit(); images = tool.getImage("1.gif");//字符串为绝对路径或相对路径

关于java里image的用法

先要设置图片路径,我们将一将背景图片back.jpg放到C盘的img目录下,调用语句如下:

ImageIcon icon=new ImageIcon("C:\\img\\back.jpg),一定要是双反斜杠

然后分别在JComponent里添加图片

JFrame

利用JFrame的一个方法setIconImage(Image image);

由于要用到Image类,所以还得把上面定义的ImageIcon对象转换成Image对象:

Image image=icon.getImage();

然后就可以调用JFrame的setIconImage(image)方法了。

还要注意一点的是,由于有些图片的格式JVM不能识别,所以要转格式,一般为jpg,gif.如把.bmp格式的转换为.jpg,不能简单的把后缀名改了就行,这样照样不能显示。方法很简单,直接用WINDOWS自带的画图工具打开图片,然后另存为时改为.jpg或.gif格式就可以了。

附源代码

import java.awt.Image;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.tree.DefaultTreeCellRenderer;

import javax.swing.tree.DefaultMutableTreeNode;

import javax.swing.JTree;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import java.awt.FlowLayout;

public class ImageTest extends JFrame{

ImageIcon icon=new ImageIcon("c:\\img\\system.jpg");

Image image=icon.getImage();

public ImageTest()

{

JMenuBar mb=new JMenuBar();

this.setJMenuBar(mb);

JMenu menu=new JMenu("system");

menu.setIcon(icon);

//JMenuItem item=new JMenuItem("exit",icon);

JMenuItem item=new JMenuItem(icon);

item.setIcon(icon);

JLabel label=new JLabel(icon);

//label.setIcon(icon);

menu.add(item);

mb.add(menu);

DefaultMutableTreeNode root=new DefaultMutableTreeNode();

DefaultMutableTreeNode node1=new DefaultMutableTreeNode();

DefaultMutableTreeNode node11=new DefaultMutableTreeNode();

DefaultMutableTreeNode node12=new DefaultMutableTreeNode();

DefaultMutableTreeNode node2=new DefaultMutableTreeNode();

DefaultMutableTreeNode node21=new DefaultMutableTreeNode();

root.add(node1);

root.add(node2);

node1.add(node11);

node1.add(node12);

node2.add(node21);

JTree jTree1 = new javax.swing.JTree(root);

DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();

renderer.setOpenIcon(new ImageIcon("C:\\img\\down.jpg")); //展开时节点图标

renderer.setClosedIcon(new ImageIcon("C:\\img\\file.jpg")); //折叠时节点图标

renderer.setLeafIcon(new ImageIcon("C:\\img\\man_small.jpg")); //叶子节点图标

jTree1.setCellRenderer(renderer);

this.add(label);

this.setIconImage(image);

this.add(jTree1);

this.setDefaultCloseOperation(3);

this.setLocation(300,400);

this.pack();

this.setVisible(true);

}

public static void main(String[] args)

{

new ImageTest();

}

}

Java:Image和BufferedImage的区别是什么?

Image是一个抽象类,BufferedImage是Image的实现类。

Image和BufferedImage的主要作用就是将一副图片加载到内存中。

BufferedImage 子类描述具有可访问图像数据缓冲区的 Image。BufferedImage 由图像数据的 ColorModel 和 Raster 组成。Raster 的 SampleModel 中 band 的数量和类型必须与 ColorModel 所要求的数量和类型相匹配,以表示其颜色和 alpha 分量。所有 BufferedImage 对象的左上角坐标都为 (0, 0)。因此,用来构造 BufferedImage 的任何 Raster 都必须满足:minX=0 且 minY=0。

Java将一副图片加载到内存中的方法是:

String imgPath = "D://demo.bmp";

BufferedImage image = ImageIO.read(new FileInputStream(imgPath));

该方法BufferedImage 可以获得图片的详细信息,例如:获得图片的宽度:image.getWidth(null);图片只有加载内存中才能对图片进行进一步的处理。

java Image怎么获取图片的长宽

通过getHeight和getwidth方法获取长和宽

比如:

System.out.println("图片长度:"+image.getHeight());  

System.out.println("图片宽度:"+image.getWidth());

补充:

Image是一个抽象列,BufferedImage是Image的实现。 

Image和BufferedImage的主要作用就是将一副图片加载到内存中,在内存中能对图片的信息进行获取。

怎样使用java读取image

这是一个图片压缩代码,以前入职的时候照片必须得20k一下,所以我把100多k的照片压缩成了16k,你可以看一下

package com.atee.test;

import java.awt.image.BufferedImage;

import java.awt.image.ColorModel;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import javax.imageio.IIOImage;

import javax.imageio.ImageIO;

import javax.imageio.ImageWriteParam;

import javax.imageio.ImageWriter;

public class ImageShrink {

public static boolean compressPic(String srcFilePath, String descFilePath) throws IOException {

File file = null;

BufferedImage src = null;

FileOutputStream out = null;

ImageWriter imgWrier;

ImageWriteParam imgWriteParams;

// 指定写图片的方式为 jpg

imgWrier = ImageIO.getImageWritersByFormatName("jpg").next();

imgWriteParams = new javax.imageio.plugins.jpeg.JPEGImageWriteParam(

null);

// 要使用压缩,必须指定压缩方式为MODE_EXPLICIT

imgWriteParams.setCompressionMode(imgWriteParams.MODE_EXPLICIT);

// 这里指定压缩的程度,参数qality是取值0~1范围内,

imgWriteParams.setCompressionQuality((float) 0.7);

imgWriteParams.setProgressiveMode(imgWriteParams.MODE_DISABLED);

ColorModel colorModel =ImageIO.read(new File(srcFilePath)).getColorModel();// ColorModel.getRGBdefault();

// 指定压缩时使用的色彩模式

// imgWriteParams.setDestinationType(new javax.imageio.ImageTypeSpecifier(

// colorModel, colorModel.createCompatibleSampleModel(16, 16)));

imgWriteParams.setDestinationType(new javax.imageio.ImageTypeSpecifier(

colorModel, colorModel.createCompatibleSampleModel(16, 16)));

try {

if (isBlank(srcFilePath)) {

return false;

} else {

file = new File(srcFilePath);System.out.println(file.length());

src = ImageIO.read(file);

out = new FileOutputStream(descFilePath);

imgWrier.reset();

// 必须先指定 out值,才能调用write方法, ImageOutputStream可以通过任何

// OutputStream构造

imgWrier.setOutput(ImageIO.createImageOutputStream(out));

// 调用write方法,就可以向输入流写图片

imgWrier.write(null, new IIOImage(src, null, null),

imgWriteParams);

out.flush();

out.close();

}

} catch (Exception e) {

e.printStackTrace();

return false;

}

return true;

}

public static boolean isBlank(String string) {

if (string == null || string.length() == 0 || string.trim().equals("")) {

return true;

}

return false;

}

public static void main(String[] args) throws IOException {

compressPic("C:\\358x441 - 111.jpg", "C:\\358x441 - 333.jpg");

}

}

怎么把java中的Image对象保存到硬盘上

javax.imageio.ImageIO

public static boolean write(RenderedImage im,

String formatName,

File output)

throws IOException

使用支持给定格式的任意 ImageWriter 将一个图像写入 File。如果已经有一个 File 存在,则丢弃其内容。

参数:

im - 要写入的 RenderedImage。

formatName - 包含格式的非正式名称的 String。

output - 将在其中写入数据的 File。

返回:

如果没有找到合适的 writer,则返回 false。

抛出:

IllegalArgumentException - 如果任何参数为 null。

IOException - 如果在写入过程中发生错误。

即可