static ImageListOptions ReadImageData(byte[] imageData) { var imageList = new ImageList(); var info = new SerializationInfo(typeof(ImageListStreamer), new FormatterConverter()); info.AddValue("Data", imageData); var ctor = typeof(ImageListStreamer).GetConstructor(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[] { typeof(SerializationInfo), typeof(StreamingContext) }, null); var streamer = (ImageListStreamer)ctor.Invoke(new object[] { info, new StreamingContext(StreamingContextStates.All) }); imageList.ImageStream = streamer; var opts = new ImageListOptions(); opts.ColorDepth = imageList.ColorDepth; opts.ImageSize = imageList.ImageSize; opts.TransparentColor = imageList.TransparentColor; for (int i = 0; i < imageList.Images.Count; i++) { var bitmap = imageList.Images[i]; var stream = new MemoryStream(); bitmap.Save(stream, ImageFormat.Bmp); opts.ImageSources.Add(ImageResourceElementTreeNode.CreateImageSource(stream.ToArray())); } return(opts); }
public override string CheckCanUpdateData(ResourceElement newResElem) { var res = base.CheckCanUpdateData(newResElem); if (!string.IsNullOrEmpty(res)) { return(res); } var binData = (BinaryResourceData)newResElem.ResourceData; byte[] imageData; if (!SerializedImageResourceElementTreeNodeFactory.GetImageData(GetModule(this), binData.TypeName, binData.Data, out imageData)) { return("The new data is not an image."); } try { ImageResourceElementTreeNode.CreateImageSource(imageData); } catch { return("The new data is not an image."); } return(string.Empty); }
void InitializeImageData(byte[] imageData) { this.imageData = imageData; this.imageSource = ImageResourceElementTreeNode.CreateImageSource(imageData); }
public ImageResourceTreeNode(EmbeddedResource er) : base(er) { this.imageData = er.GetResourceData(); this.imageSource = ImageResourceElementTreeNode.CreateImageSource(this.imageData); }