如題目,用好幾個圖片拼在一個大圖里,博主是用于Unity游戲開發使用的,話不多說,上代碼!
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;namespace EffectsPackTool.Common
{/// <summary>/// 圖集處理共通方法/// </summary>public static class SpriteSheet{/// <summary>/// 創建圖集/// </summary>/// <param name="imagePaths">圖片地址集</param>/// <param name="outputPath">輸出路徑</param>/// <param name="maxWidth">畫布最大寬度</param>/// <param name="maxHeight">畫布最大高度</param>/// <param name="imageMaxHeight">圖片最大高度</param>public static bool CreateSpriteSheet(IEnumerable<string> imagePaths, string outputPath, int maxWidth, int maxHeight, int imageMaxHeight){try{using (Bitmap spriteSheet = new Bitmap(maxWidth, maxHeight)){using (Graphics g = Graphics.FromImage(spriteSheet)){g.Clear(Color.Transparent); // 如果需要透明背景可以設置int currentHeight = 0;int currentWidth = 0;foreach (string imagePath in imagePaths){using (Image image = Image.FromFile(imagePath)){// 檢查是否超出最大寬度,如果是,則移至下一行if (image.Width + currentWidth > maxWidth){currentHeight += imageMaxHeight;currentWidth = 0;}// 繪制圖像到sprite sheetg.DrawImage(image, new Point(currentWidth, currentHeight));// 更新當前寬度currentWidth += image.Width;}}}// 保存sprite sheet到指定路徑spriteSheet.Save(outputPath, ImageFormat.Png);}return true;}catch (Exception ex){return false;}}}
}
沒什么好說的 拿去直接用就行
完結!