㈠ java 关于BufferedImage类绘制图片的问题。
BufferedImage bim=new BufferedImage(width,height,BufferedImage.TYPE_INT_ARGB);
bim= ImageIO.read(new URL("001.bmp"));
Graphics g=bim.getGraphics();
g.drawImage(bim, 0, 0, null);
或者
ImageIcon p=new ImageIcon(this.getClass()
.getResource("title.png"));
int i=p.getIconHeight();
int j=p.getIconWidth();
p.setDescription("");
具体里面的方法去api 看看 有画笔和设置尺寸的,获版取权尺寸的
㈡ 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从文件中读取图片和写入图片到文件里
在Java中,要从文件读取图片并写入到另一个文件,可以使用Java的awt和javax.imageio包。下面是一个简单的例子,展示如何读取一个名为"supermaket1.jpg"的图片文件,并将其写入到另一个文件中。
首先,你需要导入必要的包。具体来说,需要导入Java.awt.Image、Java.awt.image.BufferedImage、Java.awt.image.RenderedImage和javax.imageio.ImageIO,以及Java.io.*。这可以通过在类的顶部添加如下导入语句实现:
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import javax.imageio.ImageIO;
import java.io.*;
然后,定义一个名为image的类,并在main方法中实现具体逻辑。首先创建一个Image数组,大小为10。接着,使用ImageIO.read方法从指定路径读取图片,并将其赋值给Image类型的变量image。这里以"supermaket1.jpg"为例。
Image[] array = new Image[10];
Image image = ImageIO.read(new File("c:\\supermaket1.jpg"));//这里是你要读取的图像文件
接着,使用ImageIO.write方法将读取到的图片写入到另一个文件中。这里假设目标文件名为"test.txt",并且需要将其保存为png格式。如果目标文件不存在,系统会自动创建它。
array[0] = image;
ImageIO.write((RenderedImage) image, "png", new File("f:\\test.txt"));//这里是你要写入的文件,如果不存在这个文件,那么系统会自动创建它
这个例子展示了如何使用Java的基本图像处理功能。通过简单的几行代码,就可以实现图片的读取与写入操作。
㈣ 在java 中在代码中要引用的图片该放在哪个文件
放到任意文件夹都可以,看你的管理方式。
1、放到和程序目录下的某个文回件夹中。答
//假设图片放到程序运行目录的img目录下
BufferedImageimg=ImageIO.read(newFile("img/my.png"));
2、放到源文件中,和读取类在同一目录,使用时图片要按包名打包到jar中
//假设图片放到src下,和MyImages在一个目录
BufferedImageimg=ImageIO.read(MyImages.class.getResource("my.png"));
3、放到源文件中,但在独立文件夹中,使用时图片要按包名打包到jar中
//假设图片放到src下的img目录中
BufferedImageimg=ImageIO.read(MyImages.class.getResource("res/my.png"));
㈤ Java 如何加载图片到graphics2D上,用Image类好还是BufferedImage类好
一般都用那个bufferImage,下面是一个例子程序:
img = ImageIO.read(new File("img1.jpg"));
int width=img.getWidth();
int height=img.getHeight();
int type = img.getColorModel().getTransparency();
BufferedImage image1 = new BufferedImage(width, height, type);
Graphics2D graphics2D = image1.createGraphics();
graphics2D.setRenderingHint(
RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
graphics2D.setColor(Color.black);
graphics2D.fillRect(20, 20, 160, 160);
graphics2D.rotate(Math.toRadians(30),width/2,height/2);
graphics2D.drawImage(img, 10, 10, 100,100,null);
graphics2D.dispose();
㈥ Java程序中图片的使用方法
使用图像根据需要,可以有多种方法。
如果是放在组件中,如JButton、JLabel中,这些组件需要的是Icon接口的图像,那么使用ImageIcon类来加载图像比较好,new
ImageIcon(String
filename)或new
ImageIcon(URL
location)都可以直接加载图像文件。
甚至你还可以先用IO读出byte流,也能用byte[]创建ImageIcon。还可以由已有的Image来创建。
更为高级的用法是,你还可以先创建个空的ImageIcon,然后重写paintIcon(Component,Graphics,int,int)方法实现手工绘制!
如果你是要完成图像绘制,那么使用Image或BufferedImage比较好。
Toolkit.getDefaultToolkit().getImage(String或URL)就能加载图像。
这种方法需要一个图像观察者来监视图像是否加载完成,因为图像加载是异步的。通常,你用一个swing组件就可以充当这个角色。不过少用JLabel,因为我有一个程序用JLabel做观察者CPU占用率经常90%多,有时不出界面。用JPanel或JFrame都没出过这个问题。从API文档看,应该是所有的swing可视组件都实现了观察者接口。
选了观察者后,不用刻意观察加载情况,很简单的一个方法:swing组件的while(!prepareImage(Image));就可以了。
Image接口是Graphics类绘图drawImage要用的,所以绘制时应该选这个。
BufferedImage是实现了Image接口的图像,可以直接操作像索数据!所以利用算法生成图像再绘制,或图像处理可以使用这种方法。如浮雕、反色等。
加载方法是ImageIO类的read方法。