Я пытаюсь понять и реализовать фрагмент кода для сжатия Tiff.C# Методы сжатия файлов Tiff
Я уже использовал 2 отдельных метода - использование LibTiff.NEt сторонних разработчиков DLL (1-й метод громоздкий) и метод сохранения изображений http://msdn.microsoft.com/en-us/library/ytz20d80%28v=vs.110%29.aspx (второй метод работает только на компьютере с Windows 7, но не на Windows 2003 или 2008 сервере) ,
Теперь я ищу, чтобы изучить этот третий метод.
using System.Windows.Forms;
using System.Windows.Media.Imaging;
using System.Drawing.Imaging;
int width = 800;
int height = 1000;
int stride = width/8;
byte[] pixels = new byte[height*stride];
// Try creating a new image with a custom palette.
List<System.Windows.Media.Color> colors = new List<System.Windows.Media.Color>();
colors.Add(System.Windows.Media.Colors.Red);
colors.Add(System.Windows.Media.Colors.Blue);
colors.Add(System.Windows.Media.Colors.Green);
BitmapPalette myPalette = new BitmapPalette(colors);
// Creates a new empty image with the pre-defined palette
BitmapSource image = BitmapSource.Create(
width,
height,
96,
96,
System.Windows.Media.PixelFormats.BlackWhite,
myPalette,
pixels,
stride);
FileStream stream = new FileStream(Original_File, FileMode.Create);
TiffBitmapEncoder encoder = new TiffBitmapEncoder();
encoder.Compression = TiffCompressOption.Ccitt4;
encoder.Frames.Add(BitmapFrame.Create(image));
encoder.Save(stream);
Но у меня нет полного понимания того, что здесь происходит.
Существует, очевидно, какой-то поток памяти, к которому применяется техника сжатия. Но я немного смущен, как применить это к моему конкретному делу. У меня есть оригинальный файл tiff, я хочу использовать этот метод, чтобы установить его сжатие в CCITT и сохранить его обратно. Может ли кто-нибудь помочь?
Я скопировал вышеуказанный код и код запускается. Но мой конечный выходной файл является сплошным черным фоном. Хотя с положительной стороны он имеет правильный тип сжатия.
http://msdn.microsoft.com/en-us/library/ms616002%28v=vs.110%29.aspx
Почему вы добавили тег asp.net? Вы делаете это проект asp.net? – mbeckish
есть. У меня есть веб-страница, которая позволяет пользователю вводить данные, которые затем преобразуются в файл tiff. Первоначальный тип сжатия tiff-файла - LZW. Мне нужно это в формате сжатия CCITT. – Philo
Возможно, у вас проблемы, потому что [пространство имен чертежа не поддерживается в службах ASP.NET] (http://stackoverflow.com/q/390532/21727) – mbeckish