Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Printer.Canvas и заливка кистью 
:(
    Опции темы
DemoCode
Дата 29.5.2006, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



При рисовании на канве принтера, он полностью игнорирует стиль кисти.
В частности bsBDiagonal воспринимает как bsSolid.
Как можно это исправить? 


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Snowy
Дата 29.5.2006, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Подготовить документ на битмапе, а потом скопировать на канву принтера. 
PM MAIL   Вверх
DemoCode
Дата 29.5.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



Цитата(Snowy @  29.5.2006,  15:54 Найти цитируемый пост)
Подготовить документ на битмапе, а потом скопировать на канву принтера. 


И так пробовал. При попытке создать битмап размерами Printer.PageHeight и Printer.PageWidth программа вылетает с ошибкой "Недостаточно памяти для выполнения операции". 


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
skyboy
Дата 29.5.2006, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



DemoCode, часом там в момент обращения(в смысле - PageHeight и PageWidth) не -1 хранится?  
PM MAIL   Вверх
Snowy
Дата 29.5.2006, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Создай битмап удобного для себя размера, а на принтер копируй его через StretchDraw. 
PM MAIL   Вверх
DemoCode
Дата 29.5.2006, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



Цитата(Snowy @  29.5.2006,  16:03 Найти цитируемый пост)
Создай битмап удобного для себя размера, а на принтер копируй его через StretchDraw.  


Вот с этим большие проблемы. Именно это и был первый вариант. Мне надо печатать чертежи. При копировании StretchDraw или StretchDIBits происходит увеличение и всё портится (особенно эллипсы, окружности и т.д.) - появляется некрасивая пикселизация. А при рисовании сразу на канве принтера все ровненько и красиво, но стили кисти не воспринимаются  smile 


Цитата(skyboy @  29.5.2006,  16:02 Найти цитируемый пост)
DemoCode, часом там в момент обращения(в смысле - PageHeight и PageWidth) не -1 хранится?   


нет 


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Snowy
Дата 29.5.2006, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Цитата(DemoCode @  29.5.2006,  15:06 Найти цитируемый пост)
Вот с этим большие проблемы. Именно это и был первый вариант. Мне надо печатать чертежи. При копировании StretchDraw или StretchDIBits происходит увеличение и всё портится
Так ты определись, какого качества тебе будет достаточно.
Например лист A4 разрешение 300dpi будет 2480x3508 пикселей.
С таким разрешением портиться ничего не будет.

Добавлено @ 15:22 
Кстати, а чему у тебя равны  PageHeight и PageWidth? 
PM MAIL   Вверх
DemoCode
Дата 29.5.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



Цитата(Snowy @  29.5.2006,  16:21 Найти цитируемый пост)
Кстати, а чему у тебя равны  PageHeight и PageWidth?  


Зависит от принтера:
от 4800 и 6826
до 8600 и 10840

Цитата(Snowy @  29.5.2006,  16:21 Найти цитируемый пост)
Например лист A4 разрешение 300dpi будет 2480x3508 пикселей.
С таким разрешением портиться ничего не будет.

Попробую. 


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
DemoCode
Дата 29.5.2006, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 1
Всего: 41



Цитата(Snowy @  29.5.2006,  16:21 Найти цитируемый пост)
Например лист A4 разрешение 300dpi будет 2480x3508 пикселей.
С таким разрешением портиться ничего не будет.


Всё отлично получилось.
Хотя стиль кисти из-за увеличения превращался в bsSolid, но это не страшно, в качестве кисти использовал битмап большого разрешения.

Snowy, и что бы я без тебя делал? Спасибо.

PS: Так и осталось непонятно почему канва принтера не воспринимает стили кисти и даже если её битмапом задать. 


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Mechanic
Дата 29.5.2006, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

Репутация: нет
Всего: 7



А может быть потому, что принтер шибко умный попался. То есть, он на входе имеет PostScript данные, которые рендерит своими силами. Но силенки не шибко рассчитывает.
Обычно таких шибко вумных прикручивают с помощью настройки на EMF (или как там они сейчас называются), на чисто растровые данные. Пущай, как старый, тупой, но добрый матричник, точка за точкой, рисует то, что ему велено, но не то, как он это понимает.. smile 
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
Snowy
Дата 30.5.2006, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 18
Всего: 484



Скорее дело в слишком мелкой точке, что делает неразличимым пробел в один пихель.
Битмап не масштабирован, поэтому тоже мелкий.
Поэтому картинку лучше именно подготовить, чтобы она одинаково выглядела на всех принтерах, а не так, что на одном сетка крупнее, на другом мельче, на третем вообще неразличима. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.