private void LoadImageList(String fileName, RasterImageList rasterImageList) { if (fileName == null || "".Equals(fileName)) { return; } if (!File.Exists(fileName)) { throw new FileNotFoundException(); } RasterCodecs codec = new RasterCodecs(); CodecsImageInfo info = codec.GetInformation(fileName,true); RasterPaintProperties paintProp = rasterImageList.PaintProperties; paintProp.PaintDisplayMode = RasterPaintDisplayModeFlags.ScaleToGray; int lastPage = info.TotalPages; RasterImage image =codec.Load(fileName,0,CodecsLoadByteOrder.BgrOrGray,1,lastPage); rasterImageList.Items.Clear(); int totalCount = image.PageCount; for (int i = 1; i <= totalCount; ++i) { RasterImageListItem imageItem = new RasterImageListItem(image, i, "Page " + i.ToString()); rasterImageList.Items.Add(imageItem); } }
private void LoadImageList(String fileName, RasterImageList rasterImageList) { if (fileName == null || "".Equals(fileName)) { return; } if (!File.Exists(fileName)) { throw new FileNotFoundException(); } RasterCodecs codec = new RasterCodecs(); CodecsImageInfo info = codec.GetInformation(fileName, true); RasterPaintProperties paintProp = rasterImageList.PaintProperties; paintProp.PaintDisplayMode = RasterPaintDisplayModeFlags.ScaleToGray; int lastPage = info.TotalPages; RasterImage image = codec.Load(fileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, lastPage); rasterImageList.Items.Clear(); int totalCount = image.PageCount; for (int i = 1; i <= totalCount; ++i) { RasterImageListItem imageItem = new RasterImageListItem(image, i, "Page " + i.ToString()); rasterImageList.Items.Add(imageItem); } }
public static Control CreateControl(string zoomPolicy, Font font, Size layoutSize) { switch (zoomPolicy) { case "RasterImageListZoomPolicy": RasterImageList imageList1 = new RasterImageList(); imageList1.Dock = DockStyle.Fill; using (RasterCodecs codecs = new RasterCodecs()) { MemoryStream stream1 = new MemoryStream(); Properties.Resources.Accnt.Save(stream1, ImageFormat.Png); stream1.Position = 0; RasterImage image1 = codecs.Load(stream1); stream1.Close(); stream1 = new MemoryStream(); Properties.Resources.Bill.Save(stream1, ImageFormat.Png); stream1.Position = 0; RasterImage image2 = codecs.Load(stream1); stream1.Close(); stream1 = new MemoryStream(); Properties.Resources.Check.Save(stream1, ImageFormat.Png); stream1.Position = 0; RasterImage image3 = codecs.Load(stream1); stream1.Close(); stream1 = new MemoryStream(); Properties.Resources.Cust.Save(stream1, ImageFormat.Png); stream1.Position = 0; RasterImage image4 = codecs.Load(stream1); stream1.Close(); imageList1.Items.Add(new RasterImageListItem(image1, 1, "aaa")); imageList1.Items.Add(new RasterImageListItem(image2, 1, "bbb")); imageList1.Items.Add(new RasterImageListItem(image3, 1, "ccc")); imageList1.Items.Add(new RasterImageListItem(image4, 1, "ddd")); } return(imageList1); case "RasterImageViewerZoomPolicy": RasterImageViewer imageViewer1 = new RasterImageViewer(); imageViewer1.Dock = DockStyle.Fill; using (RasterCodecs codecs = new RasterCodecs()) { MemoryStream stream1 = new MemoryStream(); Properties.Resources.Forest.Save(stream1, ImageFormat.Png); stream1.Position = 0; RasterImage image1 = codecs.Load(stream1); stream1.Close(); imageViewer1.Image = image1; } return(imageViewer1); default: break; } return(null); }
public MyForm3(string title) { Text = title; // Set the size of the form Size = new Size(400, 200); // Create a new RasterImageList control imageList = new RasterImageList(); imageList.Dock = DockStyle.Fill; imageList.SelectionMode = RasterImageListSelectionMode.Single; imageList.Size = Size; Controls.Add(imageList); imageList.BringToFront(); codecs = new RasterCodecs(); // Create three items string imagesPath = LeadtoolsExamples.Common.ImagesPath.Path; for (int i = 0; i < 3; i++) { // Load the image int index = i + 1; string imageFileName = imagesPath + "Image" + index.ToString() + ".cmp"; RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1); RasterImageListItem item = new RasterImageListItem(image, 1, "Item" + index.ToString()); // Select the first item if (i == 0) { item.Selected = true; } // Add the item to the image list imageList.Items.Add(item); } // Change the item size imageList.ItemSize = new Size(200, 200); // Change the item image size imageList.ItemImageSize = new Size(120, 120); // We are going to draw the items ourselves imageList.ViewStyle = RasterImageListViewStyle.OwnerDraw; // Add a handler to the DrawItem event imageList.DrawItem += new EventHandler <RasterImageListDrawItemEventArgs>(rasterImageList_DrawItem); // Add the RasterImageList to the control collection. Controls.Add(imageList); }
private void rasterImageList_DrawItem(object sender, RasterImageListDrawItemEventArgs e) { RasterImageListItem item = e.Item; RasterImageList imageList = item.ImageList; Graphics g = e.Graphics; // get the item rectangle Rectangle rc = imageList.GetItemRectangle(item); // sanity check if (rc.IsEmpty) { return; } // we want to draw a 1 pixel black rectangle around the item // then we fill the inside of the rectangle with white if the item // is not selected or lightgray if it is g.DrawRectangle(Pens.Black, rc.Left, rc.Top, rc.Width - 1, rc.Height - 1); // we used up 1 pixel rc.Inflate(-1, -1); Brush b; if (item.Selected) { b = Brushes.LightGray; } else { b = Brushes.White; } g.FillRectangle(b, rc); // calculate the rectangles for image and text if (imageList.ShowItemText) { // text is visible // draw the text at the bottom of the item int textHeight = (int)(g.MeasureString("WWW", imageList.Font).Height + 4); Rectangle textRect = Rectangle.FromLTRB( rc.Left, rc.Bottom - textHeight, rc.Right, rc.Bottom); if (!textRect.IsEmpty) { StringFormat sf = new StringFormat(); sf.Alignment = StringAlignment.Center; sf.LineAlignment = StringAlignment.Center; sf.Trimming = StringTrimming.EllipsisPath; sf.FormatFlags = StringFormatFlags.NoWrap; g.DrawString( item.Text, imageList.Font, Brushes.Black, textRect, sf); sf.Dispose(); // we need to update the item rectangle for the space // we used up to draw the text rc.Height -= textRect.Height; } } // rc is the image rectangle if (!rc.IsEmpty) { // now rc holds the rectangle to draw the image into // first, set the correct page int savePage = -1; if (item.Image.Page != item.Page) { // the page is different // save current image page so we can set it back when we are done savePage = item.Image.Page; // disable the image events, we are going to set the page back, // so we do not want anybody subscribing to this image Changed // event to know we changed it. item.Image.DisableEvents(); // set new page item.Image.Page = item.Page; } try { // we want to center the image into whatever left of rc Size itemImageSize = imageList.ItemImageSize; Rectangle imageRect = new Rectangle( rc.Left + (rc.Width - itemImageSize.Width) / 2, rc.Top + (rc.Height - itemImageSize.Height) / 2, itemImageSize.Width, itemImageSize.Height); // we want to keep the aspect ratio imageRect = RasterImageList.GetFixedAspectRatioImageRectangle( item.Image.ImageWidth, item.Image.ImageHeight, imageRect); // draw the image item.Image.Paint(g, imageRect, imageList.PaintProperties); // finally, draw a black rectangle around the image imageRect.Inflate(1, 1); g.DrawRectangle( Pens.Black, imageRect.Left, imageRect.Top, imageRect.Width - 1, imageRect.Height - 1); } finally { // reset the old page if (savePage != -1) { item.Image.Page = savePage; // re-enable the events item.Image.EnableEvents(); } } } }