專案建立
- VS.NET 建立 C# 類別庫專案
Insight_cs.WebCharts,方案命名 Insight。
- 引用命名空間:
System.Drawing、System.Drawing.Drawing2D、System.Drawing.Imaging、System.Data、System.IO。
PieChart.Render 核心流程
- 計算資料總和、各項佔比角度。
- 建立
Bitmap + Graphics,設定 SmoothingMode、TextRenderingHint。
- 繪製標題、副標題、圓餅圖 (
FillPie/DrawPie)。
- 繪製圖例框與項目 (顏色方塊 + 文字 + 百分比)。
Bitmap.Save(stream, ImageFormat.Gif) 輸出,Dispose 釋放資源。
BarChart.Render 核心流程
- 尋找最大值決定 Y 軸上限,計算長條寬度/間距。
- 繪製座標軸 (粗線)、標題、副標題。
- 迴圈繪製長條 (
FillRectangle),X 軸等間距排列。
- 繪製圖例 (同 PieChart)。
- 輸出 GIF 串流並釋放資源。
ChartUtil 共用顏色表
public static Color GetChartItemColor(int index) {
Color[] colors = { Color.Blue, Color.Red, Color.Yellow, Color.Purple, Color.Green };
return colors[index % colors.Length];
}
關鍵 GDI+ 技巧
ScaleTransform 依實際輸出尺寸縮放邏輯座標 (基準 400x400)。
SmoothingMode.Default、TextRenderingHint.AntiAlias 提升視覺品質。
- 座標計算全部使用
float 避免整數截斷誤差。