A. 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);图片只有加载内存中才能对图片进行进一步的处理。
B. java 图像处理类的方法有哪些
你是想问这些函数的作用么?
raster.getPixels(0, 0, width, height, pixels);
前面有个image = ImageIO.read(file);还有WritableRaster raster = image.getRaster(); 这两句,是将一个图像文件file载入了,然后用getPixels读取像素的数值,存到pixels数组里面。
getPixels函数调用时,你看到了,是从(0,0)位置到(width, height)的像素,其实就是整个图像了。图像的像素值是以RGB格式保存,每种颜色8位,一个像素通过这三种颜色组合能产生16777216种颜色。所有像素的RGB值存到getPixels这个整数数组里了。
setPixels正好是相反的,它把result中存储的所有像素的RGB值存到图像当中了,那么新的图像就生成了。
其它还有需要说明的么?
C. Java程序设计图形类
public class Rectangle{ private int width; private int height; public Rectangle(){ this.width = 10; this.height = 10; } public Rectangle(int width, int height){ this.width = width; this.height = height; } public int area(){ return width * height; } //省略getter/setter }
D. JAVA开发图像处理方面需要用到什么类
BufferedImage类一般
E. java图形类是什么
java 图形类库常见的有 swing 和 swt,这两个用的比较多些,像着名的开源工具 eclipse 就是 swt开发的。
如果你问得是画图的类的吧,一般是Graphics2D
F. Java知多少图像处理基础
Java知多少(100)图像处理基础
图像是由一组像素构成,用二进制形式保存的图片。java语言支持GIF、JPEG和BMP这3种主要图像文件格式。java语言的图像处理功能被封装在Image类中。
图像载入和输出
在java程序中,图像也是对象,所以载入图像时,先要声明Image对象,然后,利用getImage()方法把Image对象与图像文件联系起来。载入图像文件的方法有两个:
Image getImage(URL url),url指明图像所在位置和文件名。
Image getImage(URL url,String name),url指明图像所在位置,name是文件名。
例如,以下代码声明Image对象,并用getImage()对象与图像文件联系起来:
1 Image img = getImage(getCodeBase(),”family.jpg”);
URL(uniform Resource Location 统一资源定位符)对象用于标识资源的名字和地址,在WWW客户机访问Internet网上资源时使用。确定图像位置的方法有两种:绝对位置与相对位置。取相对位置的方法有:
URL getCodeBase(),取小应用程序文件所在的位置。
URL getDocumentBase(),取HTML文件所在的位置。
例如,代码:
1 URL picURLA = new URL(getDocumentBase(),”imageSample1.gif”),
2 picURLB = new URL(getDocumentBase(),”pictures/imageSample.gif”);
3 Image imageA = getImage(picURLA),imageB = getImage(picURLB);
获取图像信息(属性)的方法有:
getWidth(ImageObserver observer):取宽度;
getHeight(ImageObserver observer):取高度。
输出图像的代码写在paint()方法中,有4种显示图像的方法:
boolean drawImage(Image img,int x,int y,ImageObserver observer)
boolean drawImage(Image img,int x,int y,Color bgcolor,ImageObserver observer)
boolean drawImage(Image img,int x,int y,int width,int height,ImageObsever observer)
boolean drawImage(Image img,int x,int y,int width,int height,Color bgcolor,ImageObsever observer)
参数img是Image对象,x,y是绘制图像矩形的左上角位置,observer是加载图像时的图像观察器,bgcolor是显示图像用的底色,width和height是显示图像的矩形区域,当这个区域与图像的大小不同时,显示图像就会有缩放处理。
Applet类也实现ImageObserver接口,常用this作为实参。参见以下代码及注释:
(1) g.drawImage(image1,0,0,this);//原图显示
(2) g.drawImage(image2,10,10,Color.red,this);//图形加底色显示
注意:如原图的大小与给定的范围不同,系统会自动缩放
(3) g.drawImage(labImag,0,0,this);// 原图显示
(4) g.grawImage(labImag,0,120,100,100,this);//缩放显示
(5) g.grawImage(labImag,0,240,500,100,this);//缩放显示
【例 12-5】小应用程序用init()或start()方法下载(获取)图像,用paint()方法显示得到的图像。
1 import java.applet.*;import java.awt.*;
2 public class Example7_5 extends Applet{
3 Image myImag;
4 public void start(){
5 myImag = getImage(getCodeBase(),”myPic.jpg”);
6 }
7 public void paint(Graphics g){
8 g.drawImage(myImg,2,2,this);
9 }
10 }
由于在Frame、JFrame和JPanel等类中没有提供getImage()方法,它们载入图像需要使用java.awt.Toolkit中的Toolkit抽象类,该类有载入图像文件的方法:
Image.getImage(String name):按指定的文件名载入图像文件。
Image.getImage(URL url):统一资源定位符载入图像文件。
这样,各种组件可以用getToolkit()方法得到Toolkit对象,然后在组件的paint()方法中通过Toolkit对象显示图像。以下代码示意这样的用法:
1 Toolkit tool = getToolkit();
2 URL url = new URL(http://www.weixueyuan.net/image.gif);
3 Image img = tool.getImage(url);
组件也可以使用Toolkit提供的静态方法getDefaultToolkit()获得一个缺省的Toolkit对象,并用它加载图像。此时,载入图像的代码常写成这样:
Image img = Toolkit.getDefaultToolkit().getImage(url);
G. java支持哪些图片文件类型
都支持。基本上。你能想到的都支持。对于java来说就是一种编码格式。
H. java中BufferedImage图像有哪几种类型
Java的BufferedImage类是Image类的子类。属于一种类型,它是用来处理和操作的图像数据。
I. java中BufferedImage图像有哪几种类型例如有TYPE_BYTE_BINARY、TYPE_BYTE_RGB等,还有什么
API文档,两张截图:
第一、类型
J. java.awt.Image类
public Image getImage(URL url, String name)
返回能被绘制到屏幕上的 Image 对象。url 参数必须指定绝对 URL。name 参数是相对于 url 参数的说明符。
不管图像存在与否,此方法总是立刻返回。当此 applet 试图在屏幕上绘制图像时,数据将被加载。绘制图像的图形图元将逐渐绘制到屏幕上。
参数:
url - 给出图像基本位置的绝对 URL。
name - 相对于 url 参数的图象位置。
返回:
指定 URL 处的图像。
public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer)
绘制指定图像中当前可用的图像。图像的左上角位于该图形上下文坐标空间的 (x, y)。图像中的透明像素不影响该处已存在的像素。
此方法在任何情况下都立刻返回,甚至在图像尚未完整加载,并且还没有针对当前输出设备完成抖动和转换的情况下也是如此。
如果图像已经完整加载,并且其像素不再发生更改,则 drawImage 返回 true。否则,drawImage 返回 false,并且随着更多的图像可用或者到了绘制动画另一帧的时候,加载图像的进程将通知指定的图像观察者。
参数:
img - 要绘制的指定图像。如果 img 为 null,则此方法不执行任何操作。
x - x 坐标。
y - y 坐标。
observer - 转换了更多图像时要通知的对象。
返回:
如果图像像素仍在更改,则返回 false;否则返回 true。