ساخت آلبوم تصاویر در سی شارپ
دوشنبه 8 تیر 1394در این مقاله قصد داریم یک نمونه نمایش آلبوم تصاویر که با کلیک بر روی هر تصویر در آلبوم آن تصویر ، با اندازه واقعی نمایش داده شود ، بسازیم .
در فرم اصلی تصاویر موجود در پوشه 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; }
- C#.net
- 5k بازدید
- 13 تشکر