У меня странная проблема с сохранением изображения буфера обмена в png. При создании снимка экрана с помощью prtscr или инструмента для подрезки он отлично работает с Clipboard.GetImage () и PngBitmapEncoder. Но, копируя изображение из Paint и делая то же самое, я получаю пустое изображение в результате. По крайней мере, он выглядит пустым при попытке просмотреть его, хотя он, кажется, содержит действительные данные PNG-изображения. При использовании Jpeg-кодировщика все работает нормально. В чем проблема с PNG и Paint? Это как-то связано с прозрачностью?
Обновление
уточнить: я удаляю изображение успешно из буфера обмена. Я просто не могу сохранить его на диск с помощью PNGEncoder, если изображение было скопировано с Paint в первую очередь. Хотя я могу сохранять изображения в виде буфера обмена с помощью JpegEncoder ... но я хочу использовать PNG.
BitmapSource source = Clipboard.GetImage();
PngBitmapEncoder enc = new PngBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(source));
enc.Save(stream);
Над кодом создается файл изображения с невидимым содержимым, который становится полностью черным или белым в зависимости от средства просмотра (при копировании из ctrl-c из Paint). Что заставляет меня думать, что это как-то связано с прозрачностью ...