GinLeeDu_KTV/PrimaryFormParts/PrimaryForm.PromotionsAndMenuPanel.cs
jasonchenwork 833848c62f 整理 DataCherk 移出 video
調整 ENV 有判斷檔案功能
20250704
2025-07-04 13:13:00 +08:00

61 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
namespace DualScreenDemo
{
public partial class PrimaryForm
{
private PromotionsAndMenuPanel promotionsAndMenuPanel;
private void InitializePromotionsAndMenuPanel()
{
promotionsAndMenuPanel = new PromotionsAndMenuPanel();
ResizeAndPositionControl(promotionsAndMenuPanel, 0, 0, 1440, 900);
this.Controls.Add(promotionsAndMenuPanel);
promotions = LoadImagesFromFolder("news");
menu = LoadImagesFromFolder("foods");
}
/// <summary>
/// 從指定資料夾載入所有 .jpg 圖片
/// </summary>
private List<Image> LoadImagesFromFolder(string folderName)
{
List<Image> images = new();
string folderPath = Utils.Env.GetPath(folderName, "");
if (folderPath.Equals("")) return images;
string[] imageFiles = Directory.GetFiles(folderPath, "*.jpg");
foreach (string filePath in imageFiles)
{
try
{
using var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
images.Add(Image.FromStream(new MemoryStream(ReadFully(fs))));
}
catch (Exception ex)
{
Console.WriteLine($"載入圖片失敗:{filePath},原因:{ex.Message}");
}
}
return images;
}
/// <summary>
/// 將 Stream 轉為 byte[],用於避免 Image 檔案鎖定
/// </summary>
private byte[] ReadFully(Stream input)
{
using MemoryStream ms = new();
input.CopyTo(ms);
return ms.ToArray();
}
}
}