#ios #swift #objective-c #core-image #dithering
Вопрос:
Вот ссылка (https://imgplay.zendesk.com/hc/en-us/articles/360029411991-What-is-GIF-Dithering-Option-) где написано When you save the file as GIF with dithering, it can make your GIF more natural.
Как реализовать Dithering
создание более естественного GIF из изображений UI или видеокадров с помощью Objective-C или Swift?
Комментарии:
1. Попробуйте поискать что-нибудь об алгоритме сглаживания Флойда Стейнберга en.wikipedia.org/wiki/Floyd–Steinberg_dithering
2. Я нашел этот алгоритм. Но не удалось реализовать в swift /objective-C
Ответ №1:
Предполагая, что ваше исходное изображение имеет 8 бит на канал RGB, вы можете использовать vImage. В vImage нет a vImageConvert_RGB88toIndexed8
, но вы можете разделить свое перемеженное изображение на три 8-битных плоских буфера для RGB. Я точно не знаю, насколько хорошо это сработает, но вы можете преобразовать два из трех каналов в Indexed2
with vImageConvert_Planar8toIndexed2
, а другой канал-в Indexed4
with vImageConvert_Planar8toIndexed4
. Это даст вам необходимую 8-разрядную таблицу поиска.
У Apple здесь есть множество примеров проектов с ускоренным кодом. Оптимизация производительности обработки изображений обсуждает преобразование чередующихся изображений в плоский формат. Если у вас есть известная палитра, применение цветовых преобразований к изображениям с помощью Многомерной таблицы поиска может быть решением для квантования вашего изображения до 256 цветов.
Комментарии:
1. Я новичок в viImage. Даже я ничего не делал с vImage. можете ли вы привести пример? Как разделить изображение на 3-битные буферы планировщика и как играть с другими функциями, которые вы предоставили? Спасибо за ваше время и ценные рекомендации. @саймон-гладман
2. Привет @sagarthecoder, я добавил ссылки на документы Apple в свой ответ.
3.
vImageConvert_Planar8toIndexed2(argbSourcePlanarBuffers[1], argbDestinationPlanarBuffers[1], kvImageGetTempBufferSize, lookUpTable, kvImageConvert_DitherFloydSteinberg, kvImageNoFlags)
это всегда видноType of expression is ambiguous without more context
4. Вам нужно будет добавить дополнительную информацию — какие типы ваших параметров? Вы смотрели документы ( developer.apple.com/documentation/accelerate/… )?
5. …возможно, вы захотите создать новый пост с тегом [vimage].