![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Печать TMetafile на черно-белом принтере [D6, Win95/98, WinXP]
Nikolai_S © (2002-09-23 12:31:00)При печати изображения из TMetaFile на черно-белом принтере цветной текст печатается белым цветом и если у текста нет фона, то его совсем не видно на бумаге. Печатаю так:
.........
Printer.Canvas.StretchDraw(Rect, MetaFile);
.........
Причем если печатаю данный метафайл из программы ACDSee - то эффект тот же самый. Как заставить текст метафайла печататься оттенками серого цвета?
MBo (2002-09-23 13:19:00) [1]Целочисленная формула в другой твоей ветке
BOA_KAA (2002-09-23 13:07:00) [2]Коэффициенты перехода от RGB к оттенкам серого такие
var
Gray: Byte;
...
Gray := Round((0.30 * GetRValue(RGBColor)) + (0.59 * GetGValue(RGBColor)) + (0.11 * GetBValue(RGBColor )));
Result := RGB(Gray, Gray, Gray);
Nikolai_S (2002-09-23 12:48:00) [3]Ну так как этот метафайл я в программе сам создаю и рисую, то может создавать временный метафайл и рисовать на нем оттенками серого, а потом выводить на печать? Только как преобразовать заданный цвет в оттенок серого?
MBo (2002-09-23 12:44:00) [4]Если нет возможности настроить принтер, чтобы он печатал цветное, придется править метафайл - в структурах EMR_SETTEXTCOLOR менять цвет