< fehl p>mit Fehler: AVIF_RESULT_ENCODE_COLOR_FAILED
Ist es nicht möglich, den Encoder/das Bild wiederzuverwenden?
Code: Select all
avifEncoder* encoder = nullptr;
avifImage* image = nullptr;
avifRGBImage avifRgb = {};
avifRWData avifOutput = AVIF_DATA_EMPTY;
void initializeAVIF()
{
encoder = avifEncoderCreate();
if (!encoder)
{
std::cerr speed = 10; // Fastest encoding (0 = slowest/best, 10 = fastest)
encoder->minQuantizer = 30; // Higher = more compression/lower quality
encoder->maxQuantizer = 30; // Keep both quantizers equal for consistent quality
image = avifImageCreate(width, height, 8, AVIF_PIXEL_FORMAT_YUV444);
if (!image)
{
std::cerr transferCharacteristics = AVIF_TRANSFER_CHARACTERISTICS_SRGB;
image->matrixCoefficients = AVIF_MATRIX_COEFFICIENTS_BT601;
// Set up RGB image
avifRGBImageSetDefaults(&avifRgb, image);
avifRgb.format = AVIF_RGB_FORMAT_RGB;
avifRgb.depth = 8;
avifRgb.pixels = Scan0;
avifRgb.rowBytes = stride;
// Update RGB to YUV conversion
auto result = avifImageRGBToYUV(image, &avifRgb);
if (result != AVIF_RESULT_OK)
{
std::cerr