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:

  1. Utwórz nowy bitmap o określonej szerokości i wysokości.
  2. Utwórz obiekt klasy Graphics z bitmapy.
  3. Zainicjalizuj obiekt klasy Pen z określoną grubością i kolorem.
  4. Narysuj elipsę na bitmapie za pomocą pędzla.
  5. 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 obraz bitmapowy w Javie

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:

  1. Otwórz strumień wejściowy pliku dla istniejącego pliku obrazu.
  2. Utwórz bitmapę z strumienia wejściowego.
  3. 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

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:

  1. Utwórz nowy obrazek bitmapowy o określonej szerokości i wysokości.
  2. Utwórz obiekt grafiki z bitmapy.
  3. Wyczyść bitmapę jasnoszarym kolorem tła.
  4. Zdefiniuj czcionkę z pożądaną nazwą i rozmiarem.
  5. Utwórz solidny pędzel w czarnym kolorze.
  6. Narysuj ciąg tekstowy na bitmapie za pomocą określonej czcionki i pędzla.
  7. 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 Rysuj tekst na bitmapie

Java Rysowanie tekstu na Bitmapie

6. Wypełnij bitmapę jednolitym kolorem

Możesz wypełnić część obrazu jednolitym kolorem, wykonując poniższe kroki:

  1. Utwórz nowy bitmap z pożądaną szerokością i wysokością.
  2. Utwórz obiekt grafiki z bitmapy.
  3. Utwórz jednolicie szary pędzel do wypełniania.
  4. Wypełnij cały obszar bitmapy kolorem szarym, używając wypełnionego prostokąta.
  5. 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 Rysuj na Bitmapie i Wypełnij Prostokątem

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:

  1. Utwórz nowy, pusty obraz bitmapowy o żądanym rozmiarze.
  2. Załaduj istniejący obraz do obiektu bitmapy.
  3. Utwórz obiekt grafiki z pustej mapy bitowej.
  4. Narysuj załadowany obraz na pustym bitmapie w lewym górnym rogu.
  5. 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 do Bitmapy za pomocą Java

Załaduj obraz w formacie Bitmap za pomocą Java

8. Zmień rozmiar istniejącego obrazu

Aby zmienić rozmiar obrazu bitmapowego:

  1. Załaduj oryginalny obrazek do obiektu bitmapy.
  2. Utwórz nowy bitmap o połowie szerokości i wysokości oryginalnego obrazu.
  3. 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");
Jak zmienić rozmiar obrazu za pomocą Bitmap w Javie

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.

Zobacz także