Поначалу казалось, что он работает нормально, пока я не загрузил карточку персонажа в Silly Tavern. , популярного форка TavernAI, в котором говорилось, что метаданных персонажей нет. Оказывается, ImageSharp помещал длинные текстовые метаданные в формат zTXt, который не поддерживается спецификацией.
Вот как я подошел к сохранению карты символов:
Код: Выделить всё
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Formats.Png.Chunks;
using SixLabors.ImageSharp.PixelFormats;
using var image = new Image(1, 1);
var imageMetadata = image.Metadata.GetPngMetadata();
var metadataList = (List)imageMetadata.TextData;
metadataList.RemoveAll(m => m.Keyword == "chara");
var aLotOfText = new string('a', 50000); // It seems to compress only if the text is big
var metadataEntry = new PngTextData("chara", aLotOfText, string.Empty, string.Empty);
metadataList.Add(metadataEntry);
image.SaveAsPng("test.png");
Подробнее здесь: https://stackoverflow.com/questions/778 ... d-not-ztxt