private void initFileList() { lvwFiles.Clear(); lvwFiles.Columns.Add("Image List", 252); ImageList imgList = new ImageList(); //Init thumbnail image list imgList.ColorDepth = ColorDepth.Depth24Bit; imgList.ImageSize = new Size(64, 64); this.lvwFiles.BeginUpdate(); for (int i = 0; i < imageFiles.ImgFileList.Count(); i++) { try { var currImage = Image.FromFile(imageFiles.ImgFileList.ElementAt(i).FullName); imgList.Images.Add(ImageProcess.FixedSize(currImage, imgList.ImageSize, Color.White)); GC.Collect(); ListViewItem listViewItem = new ListViewItem(); listViewItem.ImageIndex = i; listViewItem.Text = imageFiles.ImgFileList.ElementAt(i).Name; listViewItem.Tag = imageFiles.ImgFileList[i]; lvwFiles.Items.Add(listViewItem); } catch (OutOfMemoryException) { MessageBox.Show("Read file failed:" + imageFiles.ImgFileList.ElementAt(i).Name); } } lvwFiles.SmallImageList = imgList; this.lvwFiles.EndUpdate(); }
private void UpdateObjectList() { lvwObject.Clear(); lvwObject.Columns.Add("Object List", 252); ImageList imgList = new ImageList(); imgList.ImageSize = new Size(64, 64); imgList.ColorDepth = ColorDepth.Depth24Bit; lvwObject.BeginUpdate(); for (int i = 0; i < xmlInfo.ObjectList.Count(); i++) { var currImage = Image.FromFile(ConfigFile.WorkDirectory.FullName + "\\" + xmlInfo.ObjectList[i].Name + "_240px\\" + xmlInfo.ImgFile.Name + "_" + xmlInfo.ObjectList[i].xmin + "_" + xmlInfo.ObjectList[i].ymin + "_" + xmlInfo.ObjectList[i].xmax + "_" + xmlInfo.ObjectList[i].ymax + ".bmp"); imgList.Images.Add(ImageProcess.FixedSize(currImage, imgList.ImageSize, Color.White)); GC.Collect(); ListViewItem listViewItem = new ListViewItem(); listViewItem.ImageIndex = i; listViewItem.Text = xmlInfo.ObjectList[i].Name; listViewItem.ForeColor = xmlInfo.ObjectList[i].Color; listViewItem.Tag = xmlInfo.ObjectList[i]; lvwObject.Items.Add(listViewItem); } lvwObject.SmallImageList = imgList; lvwObject.EndUpdate(); }
public void AddObject(MyObject myobject) { var sourceimg = Image.FromFile(ImgFile.FullName); if (!Directory.Exists(imgFile.DirectoryName + "\\" + myobject.Name)) { Directory.CreateDirectory(imgFile.DirectoryName + "\\" + myobject.Name); } if (!Directory.Exists(imgFile.DirectoryName + "\\" + myobject.Name + "_240px")) { Directory.CreateDirectory(imgFile.DirectoryName + "\\" + myobject.Name + "_240px"); } ImageProcess.CropRectangle(new Point(myobject.xmin, myobject.ymin), new Point(myobject.xmax, myobject.ymax), sourceimg).Save(imgFile.DirectoryName + "\\" + myobject.Name + "\\" + imgFile.Name + "_" + myobject.xmin + "_" + myobject.ymin + "_" + myobject.xmax + "_" + myobject.ymax + ".bmp", ImageFormat.Bmp); Image image240 = ImageProcess.Crop240Rectangle(new Point(myobject.xmin, myobject.ymin), new Point(myobject.xmax, myobject.ymax), sourceimg); ImageProcess.FixedSize(image240, new Size(240, 240), Color.Black).Save(imgFile.DirectoryName + "\\" + myobject.Name + "_240px\\" + imgFile.Name + "_" + myobject.xmin + "_" + myobject.ymin + "_" + myobject.xmax + "_" + myobject.ymax + ".bmp", ImageFormat.Bmp); root.Add ( new XElement ( "object", new XElement ( "name", myobject.Name ), new XElement ( "pose", "Unspecified" ), new XElement ( "truncated", "0" ), new XElement ( "difficult", "0" ), new XElement ( "bndbox", new XElement ( "xmin", myobject.xmin.ToString() ), new XElement ( "ymin", myobject.ymin.ToString() ), new XElement ( "xmax", myobject.xmax.ToString() ), new XElement ( "ymax", myobject.ymax.ToString() ) ) ) ); SaveToFile(); }