![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
![]()
Здравствуйте. Мне понадобилось вывести изображение и подписанный внизу текст (а может потом ещё что-нибудь, из инструментария Tcanvas) - на экран, а, затем на принтер.
Я написал абстрактную процедуру, которая выводит на канву, исходя из размеров 21000*29700 (формат А4 в сотых долях миллиметра), она мне рисует всё, что нужно. На форму положил Timage, процедурой рисую на канву созданного метафайла, его растягиваю на Timage - результат ужасный! Для вывода на принтер - отдельная процедура, в ней изменяются параметры системы координат, и всё выводится прекрасно. Код:
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
![]()
Процедура для вывода на принтер:
Код:
Но я уже напарывался на то, что изменяя систему координат для делфёвых компонент - можно огрести кучу проблем. Или другого пути нет? |
![]() |
![]() |
![]() |
#3 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Я бы использовал GDI+.... выводим текст с антиалиасингом, а так же если скорость не важна, можно еще и картинку с бикубическом интерполяцией вывести. Тогда результат просто удивит вас
![]() |
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
![]()
Попробуйте вин апи функцию StretchBlt, она дает лучший результат, чем Дельфи функции. Смотрите в этой теме
http://www.programmersforum.ru/showt...ht=StretchDraw
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
![]() |
![]() |
![]() |
#6 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Ну как ? Мне кажется допустимо :D
p.s. mutabor: врятли GDI сравнится с GDI+ ![]() Код:
Последний раз редактировалось BOBAH13; 12.01.2009 в 12:02. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
![]()
прошу прощения за запоздалый ответ - сначала сдох комп, затем подвалила другая работа.. Вот, вернулся к проблеме.
После полудня попытки понять, что происходит моя ошибка была найдена, она оказалась совсем не те в том, что я предполагал. Смешно, конечно, но ведь в коде Код:
Дык, теперь вот что получается: когда я растягиваю метафайл на принтер - у принтера, оказывается, по умолчанию Arial, т.е. векторный, посему качество отменное. Вывожу в Timage - у того ms san serif - вот "кубики" и вылазят!!! StrechDraw тут ни при чём - они есть и при банальном увеличении размера шрифта. :D Но, не было бы счастья, так несчастье помогло: спасибо mutabor, отправившего меня по нужному адресу, и за код: действительно, StrechBlt намного лучше мастшабирует выводимые рисунки, чем делфёвый StrechDraw!!! Вариант с использованием GDI+ мне не подходит: как я уже писал, процедуры вывода на Canvas у меня уже написаны, на них вся логика программы. Судя по примеру, для использования GDI+, мне придётся всё переделывать, а это невозможно ![]() |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
![]()
Важное замечание. К сожалению, винапишная StrechBlt не выводит метафайлы, при попытке растянуть метафайл, на Timage, получаю белый лист
![]() Код:
Последний раз редактировалось AnTe; 06.02.2009 в 07:33. |
![]() |
![]() |
![]() |
#9 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Какие же мы не внимательные... почему вы не читаите комменты в коде который я привел ?
Цитата:
|
|
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 25.09.2008
Сообщений: 209
|
![]() Цитата:
![]() ![]() у меня уже написаны процедуры, которые выводят нужный рисунок на делфёвый Canvas, более того, все координаты выводе в хайметриках, т.е. сотых долях миллиметра. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Масштабирование | Град | Microsoft Office Excel | 6 | 24.10.2008 09:23 |
масштабирование изображения | Alex_Pro | Общие вопросы .NET | 0 | 25.05.2008 09:09 |
масштабирование | Alex_Pro | Общие вопросы .NET | 0 | 21.05.2008 18:21 |
масштабирование | lenivec | Общие вопросы Delphi | 1 | 23.02.2008 07:07 |
масштабирование картинки | ZhekON | Мультимедиа в Delphi | 6 | 16.06.2007 17:00 |