Как указать SixLabors.ImageSharp записывать метаданные в формате tEXt, а не zTXt?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как указать SixLabors.ImageSharp записывать метаданные в формате tEXt, а не zTXt?

Сообщение Anonymous »

Я создаю редактор для карточек персонажей TavernAI, который кодирует данные персонажей в текстовое поле EXIF.
Поначалу казалось, что он работает нормально, пока я не загрузил карточку персонажа в 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");
Вы можете проверить, что он выводит метаданные zTXt, запустив exiftool -v test.png. Есть ли способ указать SixLabors.ImageSharp записывать длинные фрагменты метаданных как tEXt, а не как zTXt?


Подробнее здесь: https://stackoverflow.com/questions/778 ... d-not-ztxt
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • C# SixLabors.ImageSharp Image.Load из URL-адреса BLOB-объекта Azure
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • C# Преобразование SixLabors.ImageSharp Image в byte[]
    Anonymous » » в форуме C#
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • ZXING с Sixlabors.ImageSharp бросает MethodnotFound Exception
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Не удалось загрузить файл или сборку SixLabors.Fonts ClosedXML NugetPackage
    Anonymous » » в форуме C#
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Проблема со слепком NetBarcode 1.7.2 и функцией SixLabors.Fonts.Measure()
    Anonymous » » в форуме C#
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»