Obrazy bitmapowe stanowią istotną część nowoczesnej grafiki. Są one używane na stronach internetowych, urządzeniach mobilnych i aplikacjach stacjonarnych. Formatów takich jak BMP, GIF, PNG i JPEG są oparte na bitmapach. W tym artykule dowiesz się, jak tworzyć, ładować, wypełniać i rysować bitmapy w Javie.
Java Image Drawing SDK do pracy z bitmapami
W tym artykule użyjemy Aspose.Drawing for Java, aby tworzyć i rysować na bitmapach w Javie. Jest to 2D API graficzne, które obsługuje rysowanie kształtów, tekstu i obrazów na różnych platformach. Możesz łatwo ładować i zapisywać różne formaty.
Możesz pobrać bibliotekę z releases i dodać plik JAR do swojego projektu lub zainstalować za pomocą Maven.
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-drawing</artifactId>
<version>25.6</version> <!-- Replace with latest version -->
</dependency>
1. Utwórz nowy bitmap w Javie
Aby utworzyć bitmapę od podstaw, wykonaj poniższe kroki:
- Utwórz nowy
bitmap
o określonej szerokości i wysokości. - Utwórz obiekt klasy
Graphics
z bitmapy. - Zainicjalizuj obiekt klasy
Pen
z określoną grubością i kolorem. - Narysuj elipsę na bitmapie za pomocą pędzla.
- Zapisz bitmapę jako plik graficzny PNG.
Następny przykład kodu pokazuje, jak stworzyć nowy bitmap w Javie.
// Utwórz nowy bitmap o szerokości i wysokości 800 pikseli.
Bitmap bitmap = new Bitmap(800, 800);
// Utwórz obiekt grafiki z bitmapy, aby umożliwić rysowanie.
Graphics graphics = Graphics.fromImage(bitmap);
// Zainicjuj czerwoną pióro o grubości 5 pikseli
Pen pen = new Pen(Color.getRed(), 5);
// Narysuj elipsę przy użyciu pióra, zaczynając w punkcie (0, 0) o szerokości i wysokości 700 pikseli.
graphics.drawEllipse(pen, 0, 0, 700, 700);
// Zachowaj końcowy bitmap jako plik obrazu PNG.
bitmap.save("output.png");

Utwórz nowy bitmap w Javie
2. Utwórz bitmapę z strumienia pamięci
Aby utworzyć bitmapę z strumienia pamięci, wykonaj poniższe kroki:
- Otwórz strumień wejściowy pliku dla istniejącego pliku obrazu.
- Utwórz bitmapę z strumienia wejściowego.
- Zapisz bitmapę jako nowy plik graficzny.
Poniższy przykład kodu pokazuje, jak utworzyć bitmapę za pomocą strumienia wejściowego w Javie.
// Otwórz strumień wejściowy pliku, aby odczytać istniejący obraz.
InputStream stream = new FileInputStream("input.png");
// Utwórz bitmapę z strumienia wejściowego
Bitmap bitmap = new Bitmap(stream);
// Zapisz bitmapę jako nowy plik PNG
bitmap.save("output.png", ImageFormat.getPng().d());
3. Zapisz bitmapę do pliku
Możesz zapisać obraz bitmapowy w pliku w wielu obsługiwanych formatach. Po prostu określ ścieżkę do pliku i pożądany format obrazu podczas wywoływania metody save()
. To pozwala na eksportowanie bitmapy jako PNG, JPEG, BMP, GIF i innych.
Możesz zapisywać bitmapy w różnych formatach, zmieniając format obrazu:
- Zapisz bitmapę jako plik BMP
bitmap.save("output.bmp", ImageFormat.getBmp().d());
- Zapisz bitmapę jako plik PNG
bitmap.save("output.png", ImageFormat.getPng().d());
- Zapisz bitmapę jako plik JPG
bitmap.save("output.jpg", ImageFormat.getJpeg().d());
- Zapisz obraz bitmapowy jako plik GIF
bitmap.save("output.gif", ImageFormat.getGif().d());
4. Rysowanie kształtów na bitmapie
Możesz rysować różnorodne kształty na bitmapie za pomocą klasy Graphics
dostarczonej przez Aspose.Drawing for Java. Umożliwia ona tworzenie niestandardowej grafiki i daje pełną kontrolę nad liniami, krzywymi, prostokątami, elipsami i innymi.
Poniższy przykład kodu pokazuje, jak rysować kształty na bitmapie w Javie.
// Utwórz nowy bitmap o szerokości i wysokości 500 pikseli
Bitmap bitmap = new Bitmap(500, 500);
// Utwórz obiekt graficzny do rysowania na bitmapie
Graphics graphics = Graphics.fromImage(bitmap);
// Zainicjuj niebieski długopis o grubości 2 pikseli
Pen pen = new Pen(Color.getBlue(), 2);
// Narysuj prostokąt zaczynający się w (10, 10) o szerokości 100 i wysokości 50
graphics.drawRectangle(pen, 10, 10, 100, 50);
// Narysuj elipsę zaczynając od (10, 130) o szerokości 280 i wysokości 280
graphics.drawEllipse(pen, 10, 130, 280, 280);
// Zapisz ostateczny obraz bitmapowy jako plik PNG
bitmap.save("draw_shapes.png");

Rysowanie kształtów na bitmapie w Javie
Możesz rysować różne kształty na bitmapie za pomocą wbudowanych metod rysowania dostarczonych przez klasę Graphics
w Aspose.Drawing for Java. Poniżej znajdują się obsługiwane typy kształtów oraz odpowiadające im metody:
- Arc: Użyj metody
drawArc()
, aby narysować łuk. - Krzywa Béziera: Użyj metody
drawBezier()
, aby narysować pojedynczą krzywą Béziera. - Wielokrotne krzywe Bezier: Użyj metody
drawBeziers()
, aby narysować sekwencję splajnów Bezier. - Krzywa: Użyj metody
drawCurve()
, aby stworzyć gładki, krzywy kształt. - Zamknięta krzywa: Użyj metody
drawClosedCurve()
, aby narysować zamknięty spline. - Elipsa: Użyj metody
drawEllipse()
, aby narysować kształt elipsy. - Użyj metody
drawLine()
, aby narysować prostą linię. - Wiele linii: Użyj metody
drawLines()
, aby narysować serię połączonych linii. - Path: Użyj metody
drawPath()
, aby renderować złożone kształty za pomocąGraphicsPath
. - Pie: Użyj metody
drawPie()
, aby narysować kształt kawałka tortu. - Polygon: Użyj metody
drawPolygon()
, aby stworzyć wielokąt, łącząc punkty. - Prostokąt: Użyj metody
drawRectangle()
, aby narysować prostokąt. - Wielokrotne prostokąty: Użyj metody
drawRectangles()
, aby jednocześnie narysować kilka prostokątów.
Oprócz kształtów, możesz również rysować obrazy na bitmapie:
- Ikona: Użyj metody
drawIcon()
, aby narysować ikonę w obrębie określonego prostokąta. - Obraz: Użyj metody
drawImage()
, aby narysować inny obraz na bitmapie.
Te metody rysowania ułatwiają programowe tworzenie niestandardowych grafik, diagramów lub obrazów z adnotacjami.
5. Rysuj tekst na bitmapie
Aby narysować tekst na bitmapie, wykonaj poniższe kroki:
- Utwórz nowy obrazek bitmapowy o określonej szerokości i wysokości.
- Utwórz obiekt grafiki z bitmapy.
- Wyczyść bitmapę jasnoszarym kolorem tła.
- Zdefiniuj czcionkę z pożądaną nazwą i rozmiarem.
- Utwórz solidny pędzel w czarnym kolorze.
- Narysuj ciąg tekstowy na bitmapie za pomocą określonej czcionki i pędzla.
- Zapisz bitmapę jako plik obrazu PNG.
Następny przykład kodu pokazuje, jak rysować tekst na bitmapie w Javie.
// Jak rysować tekst na bitmapie w Javie za pomocą Aspose.Drawing
// Utwórz nowy bitmap o wymiarach 500x200 pikseli
Bitmap bitmap = new Bitmap(500, 200);
// Utwórz obiekt graficzny do rysowania na bitmapie
Graphics graphics = Graphics.fromImage(bitmap);
// Wypełnij cały obrazek jasnoszarym tłem
graphics.clear(Color.getLightGray());
// Zdefiniuj czcionkę o nazwie \"Arial\" i rozmiarze 24
Font font = new Font("Arial", 24);
// Stwórz solidny czarny pędzel do rysowania tekstu.
Brush brush = new SolidBrush(Color.getBlack());
// Narysuj napis na bitmapie w pozycji (20, 80)
graphics.drawString("Welcome to Bitmap!", font, brush, 20, 80);
// Zapisz ostateczny obrazek z tekstem jako plik PNG.
bitmap.save("output.png");

Java Rysowanie tekstu na Bitmapie
6. Wypełnij bitmapę jednolitym kolorem
Możesz wypełnić część obrazu jednolitym kolorem, wykonując poniższe kroki:
- Utwórz nowy bitmap z pożądaną szerokością i wysokością.
- Utwórz obiekt grafiki z bitmapy.
- Utwórz jednolicie szary pędzel do wypełniania.
- Wypełnij cały obszar bitmapy kolorem szarym, używając wypełnionego prostokąta.
- Zapisz bitmapę jako plik graficzny PNG.
Poniższy przykład kodu pokazuje, jak wypełnić bitmapę jednolitym kolorem przy użyciu prostokąta w Javie.
// Utwórz nowy bitmapę o wymiarach 500x500 pikseli
Bitmap bitmap = new Bitmap(500, 500);
// Utwórz obiekt grafiki, aby rysować na bitmapie.
Graphics graphics = Graphics.fromImage(bitmap);
// Utwórz solidny szary pędzel do użycia do wypełnienia.
SolidBrush brush = new SolidBrush(Color.getGray());
// Wypełnij cały obszar bitmapy kolorem szarym.
graphics.fillRectangle(brush, 0, 0, bitmap.getWidth(), bitmap.getHeight());
// Zapisz wypełniony bitmap jako plik obrazu PNG
bitmap.save("output.png");

Java Rysowanie prostokąta na bitmapie i wypełnienie kolorem
7. Załaduj obraz do Bitmapy
Możesz również załadować plik obrazu do obiektu Bitmap
w następujący sposób:
- Utwórz nowy, pusty obraz bitmapowy o żądanym rozmiarze.
- Załaduj istniejący obraz do obiektu bitmapy.
- Utwórz obiekt grafiki z pustej mapy bitowej.
- Narysuj załadowany obraz na pustym bitmapie w lewym górnym rogu.
- Zapisz końcowy bitmap jako plik obrazu PNG.
Przykładowy kod poniżej pokazuje, jak załadować obraz w formacie bitmapy przy użyciu Java.
// Utwórz nowy pusty bitmap o wymiarach 500x500 pikseli
Bitmap bitmap = new Bitmap(500, 500);
// Załaduj istniejący obraz z pliku do obiektu bitmapy
Bitmap loaded = new Bitmap("C:\\Files\\Drawings\\sample.jpg");
// Utwórz obiekt graficzny do rysowania na pustym obrazie bitmapowym
Graphics graphics = Graphics.fromImage(bitmap);
// Narysuj załadowany obraz na pustym bitmapie w pozycji (0, 0)
graphics.drawImage(loaded, 0, 0);
// Zapisz ostateczny bitmap jako nowy plik PNG
bitmap.save("output.png");

Załaduj obraz w formacie Bitmap za pomocą Java
8. Zmień rozmiar istniejącego obrazu
Aby zmienić rozmiar obrazu bitmapowego:
- Załaduj oryginalny obrazek do obiektu bitmapy.
- Utwórz nowy bitmap o połowie szerokości i wysokości oryginalnego obrazu.
- Zapisz zmienioną bitmapę jako plik obrazu PNG.
Poniższy przykład kodu pokazuje, jak zmienić rozmiar istniejącego obrazu i zapisać go jako nowy bitmap w Javie.
// Załaduj oryginalny obraz z pliku do obiektu bitmapy
Bitmap original = new Bitmap("C:\\Files\\Drawings\\sample.jpg");
// Utwórz nowy zmniejszony bitmap o 50% oryginalnej szerokości i wysokości.
Bitmap resized = new Bitmap(original, new Size((int)(original.getWidth() * 0.5), (int)(original.getHeight() * 0.5)));
// Zapisz przeskalowany bitmapę jako nowy plik obrazu PNG.
resized.save("output.png");

Zmień rozmiar istniejącego obrazu przy użyciu Java
Wypróbuj Aspose.Drawing za darmo
Możesz uzyskać darmową tymczasową licencję, aby eksplorować Aspose.Drawing bez ograniczeń.
Utwórz Bitmap w Java: Darmowe zasoby
jeśli chcesz zgłębić temat pracy z bitmapami w Javie, przeglądaj poniższe darmowe zasoby, aby pogłębić swoją wiedzę i zwiększyć swoją produktywność:
Wnioski
W tym samouczku dowiedziałeś się, jak tworzyć i pracować z bitmapami za pomocą Aspose.Drawing for Java. Omówiliśmy, jak generować bitmapę od podstaw, ładować i zmieniać rozmiar istniejących obrazów, rysować kształty i tekst, wypełniać obszary kolorami jednolitymi oraz zapisywać obrazy w różnych formatach, takich jak PNG, JPG, BMP i GIF. Dzięki tym możliwościom możesz łatwo dodawać niestandardową grafikę i przetwarzanie obrazów do swoich aplikacji Java.
Aspose.Drawing for Java ułatwia pracę z grafiką 2D programowo. Odwiedź oficjalną dokumentację, aby dowiedzieć się więcej.