Я только что узнал, что TIFF имеет несколько форматов. По какой-то причине при использовании
Using bm As New Bitmap(rect.Width, rect.Width)
bm.Save("C:\testfolder\screenshot.png", Imaging.ImageFormat.Tiff)
формат становится сжатым LZW, который я не могу использовать в сторонней библиотеке.
После некоторых поисков я обнаружил, что .NET предоставляет библиотеку для сохранения в формате TIFF с различными вариантами сжатия, я хотел попробовать их все, но я не знаю, как это реализовать. Или я должен сказать, что не понял, как его использовать:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.imaging.tiffcompressoption?view=netframework-4.8#examples
Цель - получить снимок экрана региона и сохранить его в формате TIFF.
Dim stream As New FileStream("new.tif", FileMode.Create)
Dim encoder As New TiffBitmapEncoder()
encoder.Compression = TiffCompressOption.Zip
encoder.Frames.Add(BitmapFrame.Create(image)) <--what is this "image"?
encoder.Save(stream)
Что это за image
сущность? Поток? Как получить область захваченного скриншота для сохранения в формате TIFF?
Если
Using bm As New Bitmap(rect.Width, rect.Width)
Я не против сначала сохранить его, а затем перечитать только поток BMP. Единственная проблема в том, что я понятия не имею, что означает «изображение», данное в примере.
Я прочитал некоторую информацию отсюда, но до сих пор не понял:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.imaging.bitmapframe.create?view=netframework-4.8
Пожалуйста, предложите мне пример использования кода, если вы его выяснили.