您可以使用 C# 的 System.Drawing 名稱空間內的 Graphics 類別建立一張圖片,然後使用 DrawString 和 DrawImage 方法在圖片上繪製您的文字和圖片。以下是一個簡單的範例:
using System.Drawing;
using System.Drawing.Imaging;
// 設定產生影象的寬高和背景色
int width = 800;
int height = 600;
Color bgColor = Color.White;
// 建立一個 Graphics 物件以繪製影象
using (Bitmap bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb))
using (Graphics graphics = Graphics.FromImage(bitmap))
{
// 設定背景色
graphics.Clear(bgColor);
// 加入文字
string text = "Hello World";
Font font = new Font("Arial", 32, FontStyle.Bold, GraphicsUnit.Pixel);
SolidBrush brush = new SolidBrush(Color.Black);
graphics.DrawString(text, font, brush, new PointF(0, 0));
// 加入圖片
Image image = Image.FromFile("image.jpg");
graphics.DrawImage(image, new Rectangle(0, height - image.Height, image.Width, image.Height));
// 儲存影象
bitmap.Save("output.png", ImageFormat.Png);
}
這個範例建立了一個寬為 800,高為 600 的影象,背景色為白色。它在影象的左上角加入了一個黑色的 "Hello World" 文字,並在影象的底部加入了一張名為 "image.jpg" 的圖片。最後,它將產生的影象儲存為 "output.png" PNG 格式的圖片。
using System;
using System.Drawing;
using System.Drawing.Imaging;
class Program
{
static void Main(string[] args)
{
// 載入原始圖片
string imagePath = @"path\to\your\image.jpg";
Image image = Image.FromFile(imagePath);
// 添加文字到圖片
string text = "您要添加的文字";
PointF point = new PointF(10, 10); // 文字的位置(X,Y座標)
Image imageWithText = AddTextToImage(image, text, point, "Arial", 12, Color.Red);
// 儲存合成後的圖片
string outputImagePath = @"path\to\output\image.jpg";
imageWithText.Save(outputImagePath, ImageFormat.Jpeg);
}
static Image AddTextToImage(Image image, string text, PointF point, string fontFamily, float fontSize, Color color)
{
// 創建一個與原始圖片尺寸相同的Bitmap
Bitmap bitmap = new Bitmap(image.Width, image.Height);
// 使用Graphics物件繪製圖像
using (Graphics graphics = Graphics.FromImage(bitmap))
{
// 繪製原始圖片到新的Bitmap
graphics.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height), new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
// 設置文字樣式
Font font = new Font(fontFamily, fontSize);
SolidBrush brush = new SolidBrush(color);
// 繪製文字到圖片上
graphics.DrawString(text, font, brush, point);
}
return bitmap;
}
}