ساخت آلبوم تصاویر در سی شارپ

در این مقاله قصد داریم یک نمونه نمایش آلبوم تصاویر که با کلیک بر روی هر تصویر در آلبوم آن تصویر ، با اندازه واقعی نمایش داده شود ، بسازیم .

ساخت آلبوم تصاویر در سی شارپ

در فرم اصلی تصاویر موجود در پوشه Images در یک panel لیست میشوند

سپس با کلیک روی هر تصویر ، آن تصویر در فرم جدا و با اندازه اصلی نمایش داده میشود

برای بدست آوردن تصاویر موجود در پوشه از کد زیر استفاده شده است

		private void ImagesInFolder()
		{
            FileInfo FInfo;
			// Fill the array (imgName) with all images in any folder 
			imgName = Directory.GetFiles(Application.StartupPath  + @"\Images");
            // How many Picture files in this folder
			NumOfFiles = imgName.Length; 
		    imgExtension = new string[NumOfFiles];
			for (int i = 0; i < NumOfFiles; i++)
			{
				FInfo = new FileInfo(imgName[i]);
				imgExtension[i] = FInfo.Extension; // We need to know the Extension
			}
		}

و برای درج در پنل از کد زیر استفاده شده است


		private void ShowFolderImages()
		{
			int Xpos = 8; 
			int Ypos = 8;
			Image img;
			Image.GetThumbnailImageAbort myCallback = 
				new Image.GetThumbnailImageAbort(ThumbnailCallback);
			MyProgress.Visible = true;
			MyProgress.Minimum = 1;
			MyProgress.Maximum = NumOfFiles;
			MyProgress.Value = 1;
			MyProgress.Step = 1; 
			string[] Ext = new string [] {".GIF", ".JPG", ".BMP", ".PNG"};
			AddControls(NumOfFiles);
			for (int i = 0; i < NumOfFiles; i++)
			{
				switch (imgExtension[i].ToUpper())
				{
					case ".JPG":
					case ".BMP":
					case ".GIF":
					case ".PNG":
						img = Image.FromFile(imgName[i]); // or img = new Bitmap(imgName[i]);
						imgArray[i].Image = img.GetThumbnailImage(64, 64, myCallback, IntPtr.Zero);
						img = null;
						if (Xpos > 432) // six images in a line
						{
							Xpos = 8; // leave eight pixels at Left 
							Ypos = Ypos + 72;  // height of image + 8
						}
						imgArray[i].Left = Xpos;
						imgArray[i].Top = Ypos;
						imgArray[i].Width = 64;
						imgArray[i].Height = 64;
						imgArray[i].Visible = true;
						// Fill the (Tag) with name and full path of image
						imgArray[i].Tag = imgName[i]; 
						imgArray[i].Click += new System.EventHandler(ClickImage);
						this.BackPanel.Controls.Add(imgArray[i]);
						Xpos = Xpos + 72; // width of image + 8
						Application.DoEvents();
						MyProgress.PerformStep();
						break;
				}
			}
			MyProgress.Visible = false;
		}

آموزش سی شارپ

فایل های ضمیمه