Глубина цвета пикселя encoder paramters

есть программа, которая должна преобразовывать из 8-bit ного Bmp в 8-bit jpeg, но она преобразовывает его в 24bit jpeg. За преобразования отвечают эти строки:

  • encoderParameters.Count = 1;
  • encoderParameters.Parameter[0].Guid = EncoderColorDepth; //глубина цвета (новый параметр)
  • encoderParameters.Parameter[0].NumberOfValues = 1; // количество значений параметра
  • //encoderParameters.Parameter[0].Type = EncoderParameterValueTypeLong; //тип значения параметра.
  • PixelFormat depth = PixelFormat8bppIndexed; //198659
  • encoderParameters.Parameter[0].Value = &depth; //его значение и ссылка на него
  • stat = image->Save(L"Shapes01.jpg", &encoderClsid, &encoderParameters);

На практике: картинке вообще всё равно на этот параметр- т.е. она игнорирует значение PixelFormat(можно написать туда PixelFormat4bppIndexed и сохранит ту же картинку), в чём может быть дело? При чём, получая image->GetPixelFormat() получаю значение всегда 198659 , что соответствует 8 bit.


Ответы (0 шт):