2025-04-07 16:54:10 +08:00
|
|
|
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);
|
|
|
|
|
2025-07-03 18:15:21 +08:00
|
|
|
promotions = LoadImagesFromFolder("news");
|
|
|
|
menu = LoadImagesFromFolder("foods");
|
|
|
|
|
2025-04-07 16:54:10 +08:00
|
|
|
|
|
|
|
}
|
2025-07-03 18:15:21 +08:00
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 從指定資料夾載入所有 .jpg 圖片
|
|
|
|
/// </summary>
|
|
|
|
private List<Image> LoadImagesFromFolder(string folderName)
|
2025-04-07 16:54:10 +08:00
|
|
|
{
|
2025-07-03 18:15:21 +08:00
|
|
|
List<Image> images = new();
|
|
|
|
string folderPath = Path.Combine(Utils.Env.KtvPath, folderName);
|
|
|
|
|
|
|
|
if (!Directory.Exists(folderPath))
|
|
|
|
{
|
|
|
|
Console.WriteLine($" 找不到遠端資料夾:{folderPath}");
|
|
|
|
return images;
|
|
|
|
}
|
2025-04-07 16:54:10 +08:00
|
|
|
|
2025-07-03 18:15:21 +08:00
|
|
|
string[] imageFiles = Directory.GetFiles(folderPath, "*.jpg");
|
2025-04-07 16:54:10 +08:00
|
|
|
|
|
|
|
foreach (string filePath in imageFiles)
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
2025-07-03 18:15:21 +08:00
|
|
|
using var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
|
|
|
|
images.Add(Image.FromStream(new MemoryStream(ReadFully(fs))));
|
2025-04-07 16:54:10 +08:00
|
|
|
}
|
|
|
|
catch (Exception ex)
|
|
|
|
{
|
2025-07-03 18:15:21 +08:00
|
|
|
Console.WriteLine($"載入圖片失敗:{filePath},原因:{ex.Message}");
|
2025-04-07 16:54:10 +08:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return images;
|
|
|
|
}
|
2025-07-03 18:15:21 +08:00
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 將 Stream 轉為 byte[],用於避免 Image 檔案鎖定
|
|
|
|
/// </summary>
|
|
|
|
private byte[] ReadFully(Stream input)
|
|
|
|
{
|
|
|
|
using MemoryStream ms = new();
|
|
|
|
input.CopyTo(ms);
|
|
|
|
return ms.ToArray();
|
|
|
|
}
|
2025-04-07 16:54:10 +08:00
|
|
|
}
|
|
|
|
}
|