0

フォルダーから画像を読み込み、画像を一定間隔で変更するスプラッシュ スクリーン プログラムを作成しました。しかし、この画像をフォルダからではなく、アセンブリ内のリソースからロードしたいと考えています。このビットマップ配列をロードする方法がわかりません。助けてもらえますか? これは私のコードです:

private static string imagefile;
    private static int selected = 0;
    private static int begin;
    private static int end = 0;
   // private static string path = SplashDemo.Properties.Resources.ResourceManager.GetStream();
    private static string path = "C:/Users/Desktop/Desktop/New folder";
    private static string[] folderFile = null;

    [STAThread ( )]
    private static void Main ( )
    {

        Splasher.Splash = new SplashScreen ( );
        Splasher.ShowSplash ( );
     // TIMER
        System.Timers.Timer timer = new System.Timers.Timer();
        timer.Interval = 50;
        timer.Enabled = true;
        timer.AutoReset = true;
        timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Tick);
    // END TIMER


    // GET ASSEMBLY FILS
        System.Reflection.Assembly thisExe;
        thisExe = System.Reflection.Assembly.GetExecutingAssembly();
        string[] resources = thisExe.GetManifestResourceNames();
      // Bitmap[] image = new Bitmap[string];
      // Bitmap[] imagew = new Bitmap[10];
      // Bitmap image = new Bitmap(file);
     //  string[] embeddedResources = Assembly.GetExecutingAssembly().GetManifestResourceNames();
      // END GET ASSEMBLY FILS


        // GET DIRECTORY FILES
        string[] part1 = null, part2 = null, part3 = null;
        part1 = Directory.GetFiles(path, "*.png");
        part2 = Directory.GetFiles(path, "*.jpeg");
        part3 = Directory.GetFiles(path, "*.bmp");
        folderFile = new string[part1.Length + part2.Length + part3.Length];
        Array.Copy(part1, 0, folderFile, 0, part1.Length);
        Array.Copy(part2, 0, folderFile, part1.Length, part2.Length);
        Array.Copy(part3, 0, folderFile, part1.Length + part2.Length, part3.Length);
        bool beating = true;
        selected = 0;
        begin = 0;
        end = folderFile.Length;
        while (beating == true)
        {
            ImageListener.Instance.ReceiveImage(string.Format(@"{0}", imagefile));
        }


    }

    public static void timer_Tick(object sender, EventArgs e)
    {
        ChangeImage();
    }

    public static void ChangeImage()
    {
        if (selected == folderFile.Length - 1)
        {
            selected = 0;
            imagefile = (folderFile[selected]);
        }
        else
        {
            selected = selected + 1;
            imagefile = (folderFile[selected]);
        }
    }
4

1 に答える 1

0
  1. プロジェクトに画像を追加します
  2. 画像を右クリックし、[プロパティ]をクリックします
  3. プロパティウィンドウで、ビルドアクションを埋め込みリソースに設定します

たとえば、追加した画像がアセンブリでMyPictureName.jpg呼び出されたフォルダで呼び出された場合、次のようにします。ResourcesMyAssemblyName

var stream = Assembly.GetExecutingAssembly()
    .GetManifestResourceStream("MyAssemblyName.Resources.MypictureName.jpg");

pictureBox1.Image = new Bitmap(stream);
于 2012-06-30T14:57:12.227 に答える