📜  Java BufferedImage类

📅  最后修改于: 2020-12-14 05:35:03             🧑  作者: Mango


Java BufferedImage类是Image类的子类。它用于处理和操纵图像数据。 BufferedImage由图像数据的ColorModel组成。所有BufferedImage对象的左上角坐标为(0,0)。

建设者

此类支持三种类型的构造函数。

第一个构造函数使用指定的ColorModel和Raster构造一个新的BufferedImage

BufferedImage(ColorModel cm, WritableRaster raster, 
boolean isRasterPremultiplied, Hashtable,?> properties)

第二个构造函数构造一个预定义图像类型之一的BufferedImage

BufferedImage(int width, int height, int imageType)

第三个构造函数构造一个预定义图像类型之一的BufferedImage :TYPE_BYTE_BINARY或TYPE_BYTE_INDEXED。

BufferedImage(int width, int height, int imageType, IndexColorModel cm)
Sr.No Method & Description
1

copyData(WritableRaster outRaster)

It computes an arbitrary rectangular region of the BufferedImage and copies it into a specified WritableRaster.

2

getColorModel()

It returns object of class ColorModel of an image.

3

getData()

It returns the image as one large tile.

4

getData(Rectangle rect)

It computes and returns an arbitrary region of the BufferedImage.

5

getGraphics()

This method returns a Graphics2D, retains backwards compatibility.

6

getHeight()

It returns the height of the BufferedImage.

7

getMinX()

It returns the minimum x coordinate of this BufferedImage.

8

getMinY()

It returns the minimum y coordinate of this BufferedImage.

9

getRGB(int x, int y)

It returns an integer pixel in the default RGB color model (TYPE_INT_ARGB) and default sRGB colorspace.

10

getType()

It returns the image type.

以下示例演示了使用Java BufferedImage类的情况,该类使用Graphics Object在屏幕上绘制了一些文本-

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test extends JPanel {

   public void paint(Graphics g) {
      Image img = createImageWithText();
      g.drawImage(img, 20,20,this);
   }

   private Image createImageWithText() {
      BufferedImage bufferedImage = new BufferedImage(200,200,BufferedImage.TYPE_INT_RGB);
      Graphics g = bufferedImage.getGraphics();

      g.drawString("www.tutorialspoint.com", 20,20);
      g.drawString("www.tutorialspoint.com", 20,40);
      g.drawString("www.tutorialspoint.com", 20,60);
      g.drawString("www.tutorialspoint.com", 20,80);
      g.drawString("www.tutorialspoint.com", 20,100);
      
      return bufferedImage;
   }
   
   public static void main(String[] args) {
      JFrame frame = new JFrame();
      frame.getContentPane().add(new Test());

      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(200, 200);
      frame.setVisible(true);
   }
}

输出

当您执行给定的代码时,将看到以下输出-

Java缓冲图像教程