Klasa BufferedImage w języku Java
BufferedImage
Klasa Java jest podklasą klasy Image. Służy do obsługi i manipulowania danymi obrazu. A BufferedImage
składa się z ColorModel danych obrazu. Wszystkie BufferedImage
obiekty mają współrzędne w lewym górnym rogu (0, 0).
Konstruktorzy
Ta klasa obsługuje trzy typy konstruktorów.
Pierwszy konstruktor tworzy nowy BufferedImage
z określonym ColorModel i Raster.
BufferedImage(ColorModel cm, WritableRaster raster,
boolean isRasterPremultiplied, Hashtable<?,?> properties)
Drugi konstruktor tworzy BufferedImage
jeden z predefiniowanych typów obrazów.
BufferedImage(int width, int height, int imageType)
Trzeci konstruktor tworzy BufferedImage
jeden z predefiniowanych typów obrazów: TYPE_BYTE_BINARY lub TYPE_BYTE_INDEXED.
BufferedImage(int width, int height, int imageType, IndexColorModel cm)
Sr.No | Metoda i opis |
---|---|
1 | copyData(WritableRaster outRaster) Oblicza dowolny prostokątny region |
2 | getColorModel() Zwraca obiekt klasy ColorModel obrazu. |
3 | getData() Zwraca obraz jako jedną dużą płytkę. |
4 | getData(Rectangle rect) Oblicza i zwraca dowolny region |
5 | getGraphics() Ta metoda zwraca Graphics2D, zachowuje zgodność wsteczną. |
6 | getHeight() Zwraca wysokość |
7 | getMinX() Zwraca minimalną współrzędną x tego |
8 | getMinY() Zwraca minimalną współrzędną y tego |
9 | getRGB(int x, int y) Zwraca piksel będący liczbą całkowitą w domyślnym modelu kolorów RGB (TYPE_INT_ARGB) i domyślnej przestrzeni kolorów sRGB. |
10 | getType() Zwraca typ obrazu. |
Przykład
Poniższy przykład demonstruje użycie BufferedImage
klasy java, która rysuje tekst na ekranie za pomocą 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);
}
}
Wynik
Po wykonaniu podanego kodu widoczne są następujące dane wyjściowe -