位圖圖像是現代圖形的核心部分。這些圖像被用於網站、移動設備和桌面應用程序。像 BMP、GIF、PNG 和 JPEG 等格式都是基於位圖的。本文將教你如何在 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 中創建新的位圖
要從頭開始創建位圖,請按照以下步驟進行:
- 創建一個具有特定寬度和高度的新
bitmap
。 - 從位圖創建一個
Graphics
類對象。 - 初始化一個
Pen
類別對象,並指定厚度和顏色。 - 在位圖上使用筆畫出橢圓。
- 將位圖保存為 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 中創建新位圖
2. 從記憶體流創建位圖
要從記憶體流創建位圖,請按照以下步驟進行:
- 打開一個文件輸入流以讀取現有的圖像文件。
- 從輸入流創建位圖。
- 將位圖保存為新圖像文件。
以下代碼示例顯示如何在 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 中的位圖上繪製圖形
您可以使用 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. 在位圖上繪製文字
在位圖上繪製文本的方法如下:
- 創建一個具有定義寬度和高度的新位圖。
- 從位圖創建圖形對象。
- 清除位圖,使用淺灰色背景。
- 定義一個具有所需名稱和大小的字體。
- 創建一個實心的黑色畫筆。
- 在位圖上使用指定的字體和畫筆繪製文本字符串。
- 將位圖保存為 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 在位圖上繪製文字
6. 用單一顏色填充位圖
您可以按照以下步驟使用純色填充圖像的部分區域:
- 創建一個具有所需寬度和高度的新位圖。
- 從位圖創建圖形對象。
- 創建一個實心灰色的填充畫筆。
- 使用填充矩形將整個位圖區域填充為灰色。
- 將位圖保存為 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 程式碼
7. 將圖像加載到位圖中
您也可以如下將圖像文件載入 Bitmap
對象:
- 創建一個具有所需大小的新空白位圖。
- 將現有圖像載入位圖對象。
- 從空白位圖創建圖形對象。
- 將載入的影像繪製到位於左上角的空白位圖上。
- 將最終位圖保存為 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 圖像
8. 調整現有圖像的大小
要調整位圖圖像的大小:
- 將原始圖像加載到位圖對象中。
- 創建一個位圖,其寬度和高度都是原始圖像的一半。
- 將調整大小的位圖另存為 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 調整現有圖像大小
免費試用 Aspose.Drawing
你可以獲得一個 免費臨時許可證 來無限制地探索 Aspose.Drawing。
在 Java 中創建位圖:免費資源
如果你想更深入地了解在 Java 中使用位圖的相關內容,可以瀏覽以下免費資源,以增強你的理解並提高你的生產力:
結論
在本教程中,您學會了如何使用 Aspose.Drawing for Java 創建和處理位圖。我們介紹了如何從頭開始生成位圖,載入和調整現有圖像的大小,繪製形狀和文字,用實色填充區域,以及將圖像以 PNG、JPG、BMP 和 GIF 等各種格式保存。利用這些功能,您可以輕鬆地為您的 Java 應用程序添加自定義圖形和圖像處理。
Aspose.Drawing for Java 使得以程式化方式處理 2D 圖形變得簡單。訪問 官方文檔 以進一步了解。