在報告、電子商務和文件工作流程中,向圖像添加註釋是一項常見需求。 Aspose.Drawing for .NET 提供了強大的 SDK,使在 .NET 應用程式中對 JPG 圖像寫入文字變得簡單。在本指南中,您將學習從載入 JPG、配置字體、繪製覆蓋文字到保存最終圖像的完整工作流程,並提供清晰的逐步代碼示例。

在 .NET 中於 JPG 圖像上疊加文字的步驟

  1. 安裝 Aspose.Drawing SDK - 執行 NuGet 指令 Install-Package Aspose.Drawing 以將此函式庫加入您的專案。
dotnet add package Aspose.Drawing
  1. 載入來源 JPG - 使用 Image.FromFile 開啟您想要註解的檔案。
using Aspose.Drawing;
using Aspose.Drawing.Imaging;
// Load the image
Image image = Image.FromFile("input.jpg");
  1. 建立 Graphics 物件 - 此物件提供繪圖方法。
Graphics graphics = Graphics.FromFile(image);
  1. 設定字型與筆刷 - 選擇字型系列、大小、樣式與顏色。
Font font = new Font("Arial", 36, FontStyle.Bold);
SolidBrush brush = new SolidBrush(Color.Red);
  1. 繪製文字 - 呼叫 DrawString 並傳入所需的字串與位置。
PointF point = new PointF(50, 50);
graphics.DrawString("Sample Text", font, brush, point);
  1. 儲存已修改的影像 - 將變更保存回 JPG 檔案。
image.Save("output.jpg", ImageFormat.Jpeg);

這些步驟示範如何 在 .NET 中於 JPG 圖像上寫入文字,同時讓您完全掌控外觀與位置。

在 .NET 中向 JPG 圖像添加文字 - 完整程式碼範例

以下範例將所有內容整合到一個可直接執行的程式中。

using System;
using Aspose.Drawing;
using Aspose.Drawing.Imaging;
using Aspose.Drawing.Drawing2D;
using Aspose.Drawing.Fonts;
using Aspose.Drawing.Brushes;
using Aspose.Drawing.Colors;

class Program { static void Main() { // Load the JPG image using (Image image = Image.FromFile(“input.jpg”)) { // Create a Graphics object for drawing using (Graphics graphics = Graphics.FromFile(image)) { // Define the font (Arial, 36pt, bold) Font font = new Font(“Arial”, 36, FontStyle.Bold);

// 定義畫刷(紅色)
SolidBrush brush = new SolidBrush(Color.Red);

// 繪製文字的位置 PointF location = new PointF(50, 50);

// 在圖像上繪製文字 graphics.DrawString(“Hello, Aspose!”, font, brush, location); }

// 將編輯過的圖像另存為新的 JPG 檔案
            image.Save("output.jpg", ImageFormat.Jpeg);
        }
    }
}

注意: 此程式碼範例示範了核心功能。在將其用於您的專案之前,請確保更新檔案路徑(input.jpgoutput.jpg)以符合實際位置,驗證已安裝所有必要的相依項,並在開發環境中徹底測試。如遇到任何問題,請參閱官方文件或聯繫支援團隊尋求協助。

.NET 中的安裝與設定

  1. 透過 NuGet 添加 SDK

    Install-Package Aspose.Drawing
    

    此套件可在官方下載頁面取得。

  2. 套用授權(測試用可選)

var license = new Aspose.Drawing.License();
license.SetLicense("Aspose.Drawing.lic");

在評估期間,從臨時授權頁面使用臨時授權。

  1. 參考 API
    using Aspose.Drawing; 和相關的命名空間添加到您的源文件中。詳細的 API 資訊請參閱 API 參考

在 .NET 中使用 Aspose.Drawing 在 JPG 圖像上寫入文字

Aspose.Drawing 提供豐富的繪圖基元,可直接作用於 JPG、PNG、以及 BMP 等點陣圖格式。透過使用與向量圖形相同的 API,您可以在不先轉換圖像的情況下,以程式方式疊加文字、形狀或浮水印。這使其非常適合報告生成、產品目錄或任何需要圖像註釋的工作流程。

Aspose.Drawing 功能要點(此任務相關)

  • 高效能光柵處理 - 優化大型 JPG 檔案的載入與儲存。
  • 完整字型支援 - 可透過 Font 類別使用 TrueType、OpenType 與系統字型。
  • 精確文字測量 - 使用 Graphics.MeasureString 計算精確的邊界框,避免裁切。
  • 裝置無關的渲染 - 在 Windows、Linux 與 macOS 執行環境中提供一致的輸出。

處理字型與文字樣式

選擇合適的字型和大小對可讀性至關重要。使用 FontFamily 集合列出可用的字型,然後使用所需樣式建立 Font 實例:

FontFamily[] families = FontFamily.Families;
Font font = new Font("Calibri", 24, FontStyle.Italic);

您也可以套用抗鋸齒以獲得更平滑的邊緣:

graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;

在繪製之前測量字串有助於正確定位它:

SizeF size = graphics.MeasureString("Sample Text", font);
float x = (image.Width - size.Width) / 2;
float y = (image.Height - size.Height) / 2;

Saving the Modified JPG Image

在繪製完成後,呼叫 Image.Save 並指定所需的格式和品質設定。對於 JPG,您可以透過 EncoderParameters 來控制壓縮等級:

EncoderParameters ep = new EncoderParameters(1);
ep.Param[0] = new EncoderParameter(Encoder.Quality, 90L);
image.Save("output.jpg", ImageFormat.Jpeg, ep);

適當處置 ImageGraphics 物件(透過 using 陳述式)可確保檔案句柄及時釋放。

圖像處理的性能優化

  • 重用物件 - 在批次處理多張圖像時,僅建立單一 Graphics 實例。
  • 限制記憶體使用 - 以所需解析度載入圖像;僅在需要縮圖時避免載入完整尺寸檔案。
  • 平行處理 - 使用 Parallel.ForEach 同時處理多張圖像,但每個執行緒保留獨立的 Graphics 物件,以避免競爭條件。

文本放置的最佳實踐

  • 計算邊界 - 在繪製之前始終測量文字大小,以確保文字位於圖像邊框內。
  • 對比度重要 - 選擇與背景形成對比的畫筆顏色;考慮在文字後添加半透明矩形以提升可讀性。
  • 避免硬編碼座標 - 基於圖像尺寸(例如百分比)設定位置,使解決方案能適應不同圖像大小。
  • 在不同 DPI 設定下測試 - 確認文字在標準和高 DPI 顯示器上都能保持清晰。

結論

在 .NET 中將自訂文字覆蓋到 JPG 圖像上相當簡單,只需使用 Aspose.Drawing for .NET。按照上述步驟安裝 SDK、載入圖像、設定字型、繪製字串,並儲存結果,即可為任何圖片添加專業級註釋。請記得取得適當的授權以供正式環境使用;您可以先使用臨時授權,然後透過定價頁面購買完整授權。憑藉 Aspose.Drawing 以效能為導向的 API,您將能快速且可靠地整合圖像註釋功能。

常見問題

如何在 .NET 中於 JPG 圖像上寫入文字而不失去圖像品質?
使用 Image.Save 方法並設定 JPEG 品質參數(例如 90L),避免不必要的重新取樣。Aspose.Drawing SDK 會保留原始圖像的中繼資料和色彩配置檔。

我可以繪製多行文字或換行長字串嗎?
是的。使用 Graphics.DrawString 搭配指定行對齊和文字換行的 StringFormat。測量每一行以確保其位於圖像邊界內。

是否可以在處理 JPG 後向透明 PNG 添加文字?
當然可以。載入 JPG,繪製文字,然後通過指定 ImageFormat.Png 將結果保存為 PNG。這會在保持繪製文字完整的同時轉換光柵圖像。

Aspose.Drawing for .NET 有哪些授權選項?
您可以從臨時授權頁面獲取用於評估的臨時授權。對於正式環境,請通過價格頁面購買完整授權。

Read More