public void LoadImageData(Stream imageStream, ImageBuffer destImage) { using (var bitmap = new Bitmap(imageStream)) { ImageIOWindowsPlugin.ConvertBitmapToImage(destImage, bitmap); } }
private void LoadImage(string path, ImageBuffer destImage, bool invertImage = false) { lock (locker) { if (!cachedImages.TryGetValue(path, out ImageBuffer cachedImage)) { using (var imageStream = OpenStream(path)) using (var bitmap = new Bitmap(imageStream)) { cachedImage = new ImageBuffer(); ImageIOWindowsPlugin.ConvertBitmapToImage(cachedImage, bitmap); } if (cachedImage.Width < 200 && cachedImage.Height < 200) { // only cache relatively small images cachedImages.Add(path, cachedImage); } } // Themed icons are black and need be inverted on dark themes, or when white icons are requested if (invertImage) { cachedImage = cachedImage.InvertLightness(); cachedImage.SetRecieveBlender(new BlenderPreMultBGRA()); } destImage.CopyFrom(cachedImage); } }
public void LoadImage(string path, ImageBuffer destImage) { using (var imageStream = OpenSteam(path)) { var bitmap = new Bitmap(imageStream); ImageIOWindowsPlugin.ConvertBitmapToImage(destImage, bitmap); } }
public ImageBuffer GetImage() { var bitmap = new System.Drawing.Bitmap(System.Windows.Forms.Clipboard.GetImage()); var image = new ImageBuffer(); if (ImageIOWindowsPlugin.ConvertBitmapToImage(image, bitmap)) { return(image); } return(null); }
public void LoadImageSequenceData(Stream stream, ImageSequence sequence) { lock (locker) { System.Drawing.Image image; try { image = System.Drawing.Image.FromStream(stream); } catch { return; } sequence.Frames.Clear(); sequence.FrameTimesMs.Clear(); var dimension = new System.Drawing.Imaging.FrameDimension(image.FrameDimensionsList[0]); // Number of frames int frameCount = image.GetFrameCount(dimension); if (frameCount > 1) { var minFrameTimeMs = int.MaxValue; for (var i = 0; i < frameCount; i++) { // Return an Image at a certain index image.SelectActiveFrame(dimension, i); ImageBuffer imageBuffer = new ImageBuffer(); if (ImageIOWindowsPlugin.ConvertBitmapToImage(imageBuffer, new Bitmap(image))) { var frameDelay = BitConverter.ToInt32(image.GetPropertyItem(20736).Value, i * 4) * 10; sequence.AddImage(imageBuffer, frameDelay); minFrameTimeMs = Math.Max(10, Math.Min(frameDelay, minFrameTimeMs)); } } var item = image.GetPropertyItem(0x5100); // FrameDelay in libgdiplus // Time is in milliseconds sequence.SecondsPerFrame = minFrameTimeMs / 1000.0; } else { ImageBuffer imageBuffer = new ImageBuffer(); if (ImageIOWindowsPlugin.ConvertBitmapToImage(imageBuffer, new Bitmap(image))) { sequence.AddImage(imageBuffer); } } } }
public void LoadImage(string path, ImageBuffer destImage) { ImageBuffer cachedImage = null; if (!cachedImages.TryGetValue(path, out cachedImage)) { using (var imageStream = OpenSteam(path)) { var bitmap = new Bitmap(imageStream); cachedImage = new ImageBuffer(); ImageIOWindowsPlugin.ConvertBitmapToImage(cachedImage, bitmap); } if (cachedImage.Width < 200 && cachedImage.Height < 200) { // only cache relatively small images cachedImages.Add(path, cachedImage); } } destImage.CopyFrom(cachedImage); }
public void SetImage(ImageBuffer imageBuffer) { System.Windows.Forms.Clipboard.SetImage(ImageIOWindowsPlugin.ConvertImageToBitmap(imageBuffer)); }