#5502: Споткнулся, упал, очнулся — буква

« картинки и свежие анекдоты | чат

#5502: Споткнулся, упал, очнулся — буква

Кто хоть раз мучился на C# с выводом форматированного текста в майкрософтовском GDI+, знает, что для точных измерений размеров выводимого текста нужно пользоваться методом MeasureCharacterRanges, так как MeasureString даёт лишь приблизительный размер прямоугольника, в который гарантированно укладывается выводимый на экран текст. Эти пляски необходимы, если ты уже нарисовал какой-то текст на экране, а теперь надо продолжить с того же места. Предлагаемая методика, хоть и громоздка, но считает всё точно, и привыкнуть к ней можно.

Разбирая код одного сумрачного гения с сертификатом MCSE, я узрел совершенно чудный алгоритм решения той же задачи. Определяются размеры буквы W, домножаются на количество букв в выведенном тексте, а потом из полученной точки правее выведенного текста начинется перебор всех пикселей справа налево, пока не встретится пиксель, отличный по цвету от фона. Затем определяется ширина пробела, прибавляется к найденной точке — и отсюда надлежит выводить следующий блок текста. Надо ли говорить, что измеренные таким образом размеры никаких гарантий не давали, если строка с выведенным текстом оканчивалась на буквы вроде T или V, а скорость вывода текста после исправления возросла в три раза?

Комментарий:

Ваше имя:

Ещё интересное на этом сайте:

#5501: Простите за наглость
Анекдоты и картинки #8597100
Анекдоты и картинки #8597099
20. February, 2011: Something about a bull and contacts
но почему?! самозванец!
Анекдоты и картинки #8597096
Анекдоты и картинки #8597095
Вручаем премию Дарвина ( 7 роликов )
Уроки рисования
Несостоявшееся обращение к юзерам
Тюрьма Фритауна. Сьерра-Леоне.
В Каире подросток нашел бесценную статую фараона
Три тигра рвут свинью 18+
Амурский тигр Жорик
Кагоцел, да (ютрубка)
Одна гитара, четыре руки
Поездливый спехун
Анекдоты и картинки #8597084
Анекдоты и картинки #8597083
Лукашенко просит Запад не обижаться... :)
« все анекдоты и картинки
Рейтинг@Mail.ru