Nano Hash - криптовалюты, майнинг, программирование

iOS Core-Graphics: использование сеттеров CGContext для визуализации четкого PDF-файла

Я работаю над визуализатором PDF, используя cgpdf и catiledlayer в ios, и все хорошо, за исключением некоторых шрифтов, как будто векторы должны быть близки друг к другу, и я получаю нечеткий вид, как будто я не ношу очки. Решение, которое я ищу и с которым я хотел бы получить помощь, состоит в том, чтобы сделать серые пиксели у края просто черными. Я предполагаю, что это возможно с помощью метода CGContextSet"Whatever"(). Вот фото для иллюстрации.


В настоящее время отображается как... current


Приложение Adobe Reader отображается как...

adobe

и выглядит очень четко, поэтому, если вы знаете метод, который он использует (или как получить аналогичный), я буду в восторге


Но то, что я пытаюсь сделать, это сделать все серые пиксели черными. Что-то вроде... fine


Опять же, я использую методы установки cgcontext и замечаю изменения, но не вся документация ясно показывает, что каждый из них делает, поэтому любое объяснение или понимание решений приветствуются. Заранее спасибо.


Ответы:


1

Похоже, что средство визуализации Adobe выравнивает нижнюю часть глифов по целым пикселям, а ваше — нет.

Эти два сообщения в списке рассылки Quartz-Dev (одно, два) предлагают попробовать изменить настройки субпиксельного позиционирования и субпиксельного квантования с помощью следующих функций:

CGContextSetAllowsFontSubpixelPositioning
CGContextSetShouldSubpixelPositionFonts
CGContextSetAllowsFontSubpixelQuantization
CGContextSetShouldSubpixelQuantizeFonts

Либо полностью отключите субпиксельное позиционирование, либо включите субпиксельное позиционирование и субпиксельное квантование. Вам придется поэкспериментировать.

Постобработка рендеринга Quartz вряд ли будет выглядеть очень хорошо, как вы продемонстрировали.

09.06.2012
  • Спасибо, я наткнулся на эти методы, но пока ничего особенного. Я прочитаю этот пост и посмотрю, работает ли что-нибудь. Будет обновляться с результатами. 09.06.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..