Я конвертирую их, но затем он жалуется, что
Ошибка жалуется на «нераспознанные теги tiff...», первые два — 317 и 531.
Также: «Для кодов ошибок X'8F0E' и X'8F0F' обнаружен битовый шаблон, который не соответствует в соответствии с правилами алгоритма распаковки. Дальнейшая распаковка невозможна. Проверьте целостность входных данных
потока и повторите запрос."
У меня есть работающий tiff-файл, вот его подробности:

Я использую код из MSDN, который я изменил.
Приведенный ниже код работает, но теперь мне нужно иметь более одного параметра в кодировщике.
Bitmap myBitmap;
ImageCodecInfo myImageCodecInfo;
Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
// Create a Bitmap object based on a BMP file.
myBitmap = new Bitmap(@"f:\testFromBlob.jpg");
// Get an ImageCodecInfo object that represents the TIFF codec.
myImageCodecInfo = GetEncoderInfo("image/tiff");
//do the actual work
myEncoder = Encoder.Compression;
myEncoderParameters = new EncoderParameters(1);
myEncoderParameter = new EncoderParameter(myEncoder, long) EncoderValue.CompressionCCITT4);
myEncoderParameters.Param[0] = myEncoderParameter;
myBitmap.Save(@"f:\resultFromDotNet.tiff", myImageCodecInfo, myEncoderParameters);
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
Я не разбираюсь в файлах изображений.
Может ли кто-нибудь сказать мне, как выполнить преобразование, соответствующее настройкам моего тестового изображения?
Я пробовал изменить битовую глубину на 1, а также сжатие, не уверен, но думаю, что, возможно, потребуется изменить и то, и другое.
ОБНОВЛЕНИЕ - с помощью Magick я могу преобразовать в рабочий формат, используя
magick Convert image01.jpg -compress Group4 tiff3.tiff
Если это вообще поможет мне на правильном пути для C#/.NET
Приведенный выше код работает, но мне нужно знать, как изменить несколько параметров, а не только один. Я думаю, что это, вероятно, будет удачным ходом.
У меня есть несколько рабочих параметров, публикую их здесь на случай, если это поможет кому-то еще. Теперь просто нужно подождать, пока зайдет клиент, и посмотреть, сработает ли это для него!
Для справки вот ссылка на документацию MS
https://learn.microsoft.com/en-us/dotne ... mework-4.8
Bitmap myBitmap;
ImageCodecInfo myImageCodecInfo;
Encoder compressionEncoder;
Encoder colorDepthEncoder;
EncoderParameter compressionParameter;
EncoderParameter colorDepthParameter;
EncoderParameters myEncoderParameters;
// Create a Bitmap object based on a BMP file.
myBitmap = new Bitmap(@"f:\colorTest.jpg");
// Get an ImageCodecInfo object that represents the TIFF codec.
myImageCodecInfo = GetEncoderInfo("image/tiff");
//do the actual work
compressionEncoder = Encoder.Compression;
myEncoderParameters = new EncoderParameters(2);
compressionParameter = new EncoderParameter(compressionEncoder,(long)EncoderValue.CompressionCCITT4);
colorDepthEncoder = Encoder.ColorDepth;
colorDepthParameter = new EncoderParameter(colorDepthEncoder, 24L); //if needed this can be removed
myEncoderParameters.Param[0] = compressionParameter;
myEncoderParameters.Param[1] = colorDepthParameter;
myBitmap.Save(@"f:\resultFromDotNet1bit.tiff", myImageCodecInfo, myEncoderParameters);
Мобильная версия