位圖圖像是現代圖形的核心部分。這些圖像被用於網站、移動設備和桌面應用程序。像 BMPGIFPNGJPEG 等格式都是基於位圖的。本文將教你如何在 Java 中創建、加載、填充和繪製位圖。

Java 圖像繪製 SDK 用於處理位圖

在這篇文章中,我們將使用 Aspose.Drawing for Java 在 Java 中創建和繪製位圖。這是一個 2D 圖形 API,支持跨平台繪製形狀、文本和圖像。您可以輕鬆加載和保存各種格式。

您可以從 releases 下載庫,並將 JAR 添加到您的項目中或通過 Maven 安裝。

<dependency>
  <groupId>com.aspose</groupId>
  <artifactId>aspose-drawing</artifactId>
  <version>25.6</version> <!-- Replace with latest version -->
</dependency>

1. 在 Java 中創建新的位圖

要從頭開始創建位圖,請按照以下步驟進行:

  1. 創建一個具有特定寬度和高度的新 bitmap
  2. 從位圖創建一個 Graphics 類對象。
  3. 初始化一個 Pen 類別對象,並指定厚度和顏色。
  4. 在位圖上使用筆畫出橢圓。
  5. 將位圖保存為 PNG 圖像文件。

以下代碼範例顯示了如何在 Java 中創建一個新的位圖。

// 創建一個寬度和高度為 800 像素的新位圖
Bitmap bitmap = new Bitmap(800, 800);

// 從位圖創建圖形對象以便進行繪製
Graphics graphics = Graphics.fromImage(bitmap);

// 初始化一支紅色筆,厚度為 5 像素
Pen pen = new Pen(Color.getRed(), 5);

// 使用筆從 (0, 0) 開始畫一個寬度和高度為 700 像素的橢圓。
graphics.drawEllipse(pen, 0, 0, 700, 700);

// 將最終位圖保存為 PNG 圖像文件
bitmap.save("output.png");
在 Java 中創建一個新的位圖

在 Java 中創建新位圖

2. 從記憶體流創建位圖

要從記憶體流創建位圖,請按照以下步驟進行:

  1. 打開一個文件輸入流以讀取現有的圖像文件。
  2. 從輸入流創建位圖。
  3. 將位圖保存為新圖像文件。

以下代碼示例顯示如何在 Java 中使用輸入流創建位圖。

// 打開檔案輸入串流以讀取現有的圖像
InputStream stream = new FileInputStream("input.png");

// 從輸入流創建位圖
Bitmap bitmap = new Bitmap(stream);

// 將位圖另存為新的 PNG 文件
bitmap.save("output.png", ImageFormat.getPng().d());

3. 保存位圖到檔案

您可以將位圖圖像保存為多種支持的格式。只需在調用 save() 方法時指定文件路徑和所需的圖像格式。這使您可以將位圖導出為 PNG、JPEG、BMP、GIF 等格式。

您可以通過更改圖像格式將位圖保存為不同的格式:

  • 將位圖另存為 BMP 檔案
bitmap.save("output.bmp", ImageFormat.getBmp().d());
  • 將位圖保存為 PNG 文件
bitmap.save("output.png", ImageFormat.getPng().d());
  • 將位圖保存為 JPG 文件
bitmap.save("output.jpg", ImageFormat.getJpeg().d());
  • 將位圖保存為 GIF 文件
bitmap.save("output.gif", ImageFormat.getGif().d());

4. 在位圖上繪製形狀

您可以使用 Aspose.Drawing for Java 提供的 Graphics 類在位圖上繪製各種形狀。它允許您創建自定義圖形,並讓您完全控制線條、曲線、矩形、椭圓以及更多。

以下代碼範例顯示了如何在 Java 中的位圖上繪製形狀。

// 創建一個寬度和高度均為 500 像素的新位圖
Bitmap bitmap = new Bitmap(500, 500);

// 創建一個圖形對象以在位圖上繪圖
Graphics graphics = Graphics.fromImage(bitmap);

// 初始化一支藍色的筆,粗細為 2 像素
Pen pen = new Pen(Color.getBlue(), 2);

// Draw a rectangle starting at (10, 10) with width 100 and height 50
graphics.drawRectangle(pen, 10, 10, 100, 50);

// 畫一個橢圓,起始點為 (10, 130),寬度為 280,高度為 280
graphics.drawEllipse(pen, 10, 130, 280, 280);

// 將最終的位圖圖像保存為 PNG 文件
bitmap.save("draw_shapes.png");
在 Java 中的位圖上繪製形狀

在 Java 中的位圖上繪製圖形

您可以使用 Aspose.Drawing for Java 中 Graphics 類提供的內建繪圖方法在位圖上繪製各種形狀。以下是支援的形狀類型及其相應方法:

  • Arc: 使用 drawArc() 方法來繪製弧。
  • Bezier 曲線:使用 drawBezier() 方法繪製單個 Bezier 曲線。
  • 多重貝茲曲線:使用 drawBeziers() 方法繪製一系列貝茲樣條。
  • 曲線:使用 drawCurve() 方法來創建平滑的曲線形狀。
  • 閉合曲線:使用 drawClosedCurve() 方法來繪製閉合樣條。
  • 橢圓:使用 drawEllipse() 方法來繪製橢圓形狀。
  • 使用 drawLine() 方法來畫一條直線。
  • 多條線:使用 drawLines() 方法來繪製一系列連接的線。
  • 路徑:使用 drawPath() 方法來渲染使用 GraphicsPath 的複雜形狀。
  • Pie: 使用 drawPie() 方法來繪製一個派形狀的區塊。
  • 多邊形:使用 drawPolygon() 方法通過連接點來創建一個多邊形。
  • 長方形:使用 drawRectangle() 方法來繪製長方形。
  • 多個矩形:使用 drawRectangles() 方法一次性繪製多個矩形。

除了形狀,你還可以在位圖上繪製圖像:

  • 圖示:使用 drawIcon() 方法在特定矩形內繪製圖示。
  • 圖像:使用 drawImage() 方法將另一個圖像繪製到位圖上。

這些繪圖方法使得能夠以程式方式輕鬆創建自定義圖形、圖表或帶註解的圖像。

5. 在位圖上繪製文字

在位圖上繪製文本的方法如下:

  1. 創建一個具有定義寬度和高度的新位圖。
  2. 從位圖創建圖形對象。
  3. 清除位圖,使用淺灰色背景。
  4. 定義一個具有所需名稱和大小的字體。
  5. 創建一個實心的黑色畫筆。
  6. 在位圖上使用指定的字體和畫筆繪製文本字符串。
  7. 將位圖保存為 PNG 圖像文件。

以下代碼範例顯示了如何在Java中於位圖上繪製文本。

// 如何在 Java 中使用 Aspose.Drawing 在位圖上繪製文本
// 建立一個尺寸為 500x200 像素的新位圖
Bitmap bitmap = new Bitmap(500, 200);

// 創建一個圖形對象以在位圖上繪製
Graphics graphics = Graphics.fromImage(bitmap);

// 填滿整個位圖,使用淺灰色背景
graphics.clear(Color.getLightGray());

// 定義一種名為 \"Arial\" 和大小為 24 的字體
Font font = new Font("Arial", 24);

// 創建一個實心黑色畫筆用於繪製文本
Brush brush = new SolidBrush(Color.getBlack());

// 在位置 (20, 80) 的位圖上繪製字符串
graphics.drawString("Welcome to Bitmap!", font, brush, 20, 80);

// 將最終圖像與文本另存為 PNG 文件
bitmap.save("output.png");
Java 在位圖上繪製文本

Java 在位圖上繪製文字

6. 用單一顏色填充位圖

您可以按照以下步驟使用純色填充圖像的部分區域:

  1. 創建一個具有所需寬度和高度的新位圖。
  2. 從位圖創建圖形對象。
  3. 創建一個實心灰色的填充畫筆。
  4. 使用填充矩形將整個位圖區域填充為灰色。
  5. 將位圖保存為 PNG 圖像文件。

以下代碼範例顯示了如何使用 Java 中的矩形填充一個位圖顏色。

// 創建一個尺寸為 500x500 像素的新位圖
Bitmap bitmap = new Bitmap(500, 500);

// 創建一個圖形對象以在位圖上繪製
Graphics graphics = Graphics.fromImage(bitmap);

// 創建一個實心灰色的畫筆以用來填充
SolidBrush brush = new SolidBrush(Color.getGray());

// 填滿整個位圖區域,使用灰色。
graphics.fillRectangle(brush, 0, 0, bitmap.getWidth(), bitmap.getHeight());

// 將填充的位圖保存為 PNG 圖像文件
bitmap.save("output.png");
Java 在位图上繪製並填充矩形

在位圖上繪製矩形並填充顏色的 Java 程式碼

7. 將圖像加載到位圖中

您也可以如下將圖像文件載入 Bitmap 對象:

  1. 創建一個具有所需大小的新空白位圖。
  2. 將現有圖像載入位圖對象。
  3. 從空白位圖創建圖形對象。
  4. 將載入的影像繪製到位於左上角的空白位圖上。
  5. 將最終位圖保存為 PNG 圖像文件。

以下程式碼範例顯示了如何使用 Java 來以位圖格式加載圖像。

// 創建一個尺寸為 500x500 像素的新空白位圖
Bitmap bitmap = new Bitmap(500, 500);

// 從文件加載現有圖像到位圖對象中
Bitmap loaded = new Bitmap("C:\\Files\\Drawings\\sample.jpg");

// 在空白位圖上創建一個圖形對象進行繪製
Graphics graphics = Graphics.fromImage(bitmap);

// 將加載的圖像繪製到空白位圖的位置 (0, 0)
graphics.drawImage(loaded, 0, 0);

// 將最終位圖另存為新的 PNG 文件
bitmap.save("output.png");
使用 Java 將圖像加載到 Bitmap 中

使用 Java 載入 Bitmap 圖像

8. 調整現有圖像的大小

要調整位圖圖像的大小:

  1. 將原始圖像加載到位圖對象中。
  2. 創建一個位圖,其寬度和高度都是原始圖像的一半。
  3. 將調整大小的位圖另存為 PNG 圖像檔。

以下代碼範例顯示如何調整現有圖像的大小並將其另存為新的位圖,使用 Java。

// 從文件中將原始圖像加載到位圖對象中
Bitmap original = new Bitmap("C:\\Files\\Drawings\\sample.jpg");

// 創建一個新的位圖,大小為原始寬度和高度的50%
Bitmap resized = new Bitmap(original, new Size((int)(original.getWidth() * 0.5), (int)(original.getHeight() * 0.5)));

// 將調整大小的位圖另存為新的 PNG 圖像文件
resized.save("output.png");
如何使用 Java 中的 Bitmap 調整圖像大小

使用 Java 調整現有圖像大小

免費試用 Aspose.Drawing

你可以獲得一個 免費臨時許可證 來無限制地探索 Aspose.Drawing。

在 Java 中創建位圖:免費資源

如果你想更深入地了解在 Java 中使用位圖的相關內容,可以瀏覽以下免費資源,以增強你的理解並提高你的生產力:

結論

在本教程中,您學會了如何使用 Aspose.Drawing for Java 創建和處理位圖。我們介紹了如何從頭開始生成位圖,載入和調整現有圖像的大小,繪製形狀和文字,用實色填充區域,以及將圖像以 PNG、JPG、BMP 和 GIF 等各種格式保存。利用這些功能,您可以輕鬆地為您的 Java 應用程序添加自定義圖形和圖像處理。

Aspose.Drawing for Java 使得以程式化方式處理 2D 圖形變得簡單。訪問 官方文檔 以進一步了解。

另見